抽象ファクトリ パターンとファクトリ メソッド パターンの違いは、抽象ファクトリが最初にファクトリを作成し、次にファクトリがプロダクト (インスタンス) を作成し、オブジェクトを作成するためのインターフェイスを定義し、どのクラスを作成するかをサブクラスに決定させることです。インスタンス化します。 彼は単純なファクトリーパターンでクローズドオープン原理問題を解くことができます;
// 产品(数据库)标准 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 チュートリアルに興味のある友人に役立つことを願っています。