Der Unterschied zwischen dem abstrakten Fabrikmuster
und dem Fabrikmethodenmuster besteht darin, dass die abstrakte Fabrik zuerst die Fabrik erstellt und dann die Fabrik das Produkt (Instanz) erstellt.
Definieren Sie eine Schnittstelle zum Erstellen Objekte und lassen Sie die Unterklasse entscheiden, welche Klasse instanziiert werden soll. Er kann das Problem geschlossener und offener Prinzipien im einfachen Fabrikmodell lösen;
// 产品(数据库)标准 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(); //
Das Obige hat das abstrakte Factory-Muster in PHP vorgestellt, einschließlich seiner Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.