1,工厂模式
最大的优点是:创建对象。
通俗说,以前创建对象需要使用new,现在工厂模式把这个过程封装起来了。
假设不使用工厂模式:那么很多地方调用类a,代码就会这样子创建一个实例:new a(),假设某天需要把a类的名称修改,意味着很多调用的代码都要修改。
工厂模式:建立一个工厂(一个函数,一个方法),来制造新的对象。
比如php框架的路由,传递不同的参数,可以实例化不同的控制器类。
例子:
class DbFactory { public static function factory($db_class_name) { $db_class_name = strtolower($db_class_name); if (include "Drivers/" . $db_class_name . ".class.php") { //Drivers驱动数据库连接类 $class_name = $db_class_name; return new $class_name; } else { throw new Exception("对应的数据库类没有找到!"); } } } //使用方法: $mysql = DbFactory::factory("mysql"); $oracle = DbFactory::factory("oracle");