<?php
# 定义一个形象办法
abstract class PubAction
{
abstract public function index();
public function demo(){
}
}
#如果继承抽象类,那么抽象类中的形象办法,必须要全副实现
# 定义一个A类 继承 抽象类
class A extends PubAction
{
public function index()
{
return "我是A中的办法";
}
}
# 定义一个B类 继承 抽象类
class B extends PubAction
{
public function index()
{
return "我是B中的办法";
}
}
# 定义工厂类
class Factory
{
# 定义 一个公共的静态方法 用来创建对象
public static function index($str)
{
if($str == "A")
{
return new A;
}else if($str == "B")
{
return new B;
}else{
return "没有此类";
}
}
}
$obj = Factory::index("A");
# 判断是否是一个对象,如果是一个对象则输入一个公共的办法
if(is_object($obj)){
echo $obj->index();
}else{
echo $obj;
}
# 应用工厂模式,益处是只须要将对应的信息传递到工厂类中,即可生产出一个对应的对象。 毛病是:如果每减少一个类就须要创立一个具体的类和对象来实现工厂。
发表回复