추상 팩토리 패턴
과 팩토리 메소드 패턴의 차이점은 추상 팩토리가 먼저 팩토리를 생성한 다음 팩토리가 제품(인스턴스)을 생성한다는 것입니다.
생성을 위한 인터페이스를 정의합니다. 객체를 생성하고 하위 클래스가 인스턴스화할 클래스를 결정하도록 합니다. 그는 단순한 공장 모델에서 폐쇄적 원칙과 개방적 원칙의 문제를 해결할 수 있습니다;
// 产品(数据库)标准 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.