扩展抽象单例类
2022-08-30 18:59:06
如果你有一个工厂类来创建某种类型的新对象,并且该 factroy 类是一个单例,如下所示:
class Database_Factory extends Base_Factory {
private static $factory;
private $objects = array();
public function __get($profile) {
// check for object and return it if it's created before
}
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
当某些对象需要自己的工厂时,相同的代码会重复。所以我决定使这个工厂类抽象化,并为每个工厂只实现特定的例程。但是PHP不允许实例化抽象类。
abstract class Base_Factory {
public static function getInstance(){
if (!self::$factory)
self::$factory = new self();
return self::$factory;
}
}
致命错误:无法实例化抽象类Base_Factory
你会怎么做?