您的位置:首页 > 编程语言 > PHP开发

php中的设计模式之--抽象工厂模式

2015-01-08 14:04 211 查看
 抽象工厂模式

  其与工厂方法模式的区别在于抽象工厂是先创建工厂,然后工厂在创建商品(实例);
 定义一个创建对象的接口,让子类决定哪个类实例化。 他可以解决简单工厂模式中的封闭开放原则问题;

// 产品(数据库)标准

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