时间: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教程有兴趣的朋友有所帮助。