时间:2021-07-01 10:21:17 帮助过:6人阅读
定义一个创建对象的接口,让子类决定哪个类实例化。 他可以解决简单工厂模式中的封闭开放原则问题;
// 产品(数据库)标准
interface DbInterface{
public function connect(Array $params=array());
public function query($sql);
public function insert($table, $record);
public function update($table, $record, $where);
public function delete($table, $where);
}
// 具体产品(Mysql)
class MysqlDb implements DbInterface(){
public function connect(Array $params=array());
public function query($sql){}
public function insert($table, $record){}
public function update($table, $record, $where){}
public function delete($table, $where){}
}
class OracalDb implements DbInterface(){
public function connect(Array $params=array()){}
public function query($sql){}
public function insert($table, $record){}
public function update($table, $record, $where){}
public function delete($table, $where){}
}
// 构造工厂
interface CreateFactory(){
function createDB(); //分为 内敛的和外向的
}
class FactoryMysql implements CreateFactory{
function createDB() {
return new MysqlDb();
}
}
class FactoryOracle implements CreateFactory{
function createDB() {
return new OracalDb();
}
}
(1) 如果想使用mysql
$db = new FactoryMysql()->createDB(); //以上就介绍了php中的抽象工厂模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。