工厂模式是做什么的呢?
例如现在又mysql操作类和mssql操作类,我们在使用的时候会把这些类来分别实例化,这些类都是用来数据库操作的,我们来新创建一个类,来管理这个具有相同共性的类
class Factory{
static function creat($type){
return new $type;
}
}
那我们在实例化mysql对象的时候,就可以采用
$mysql_obj = Factory::creat(‘mysql’);
优势:统一管理对象的实例化,便于扩展维护
我们来写一写数据库操作类统一管理的工厂类吧
class DB{
public static $db;
public static function init($dbtype,$config){
self::$db = new $dbtype;
self::$db->connect($config);
}
public static function query($sql){
return self::$db->query($sql);
}
}
视图引擎工厂模式也是同样的道理