将同一类型的创建对象的过程写在工厂方法中,由工厂根据参数返回对应的类对象
可以创建一个工厂接口和多个工厂实现类,一旦需要增加新的功能,直接增加新的工厂类
这里的代码引用了前两篇文章中的注册树及单例的代码
<?php
class Factory
{
// $db_class -> Db1/Db2
public static function getDbInstance($db_class)
{
$db = Register::getInstance($db_class);
if (!$db) {
$db = $db_class::getInstance();
Register::setInstance($db, $db_class);
}
return $db;
}
}