<?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; } # 应用工厂模式,益处是只须要将对应的信息传递到工厂类中,即可生产出一个对应的对象。 毛病是:如果每减少一个类就须要创立一个具体的类和对象来实现工厂。