Das Factory-Muster ist unser am häufigsten verwendetes Instanziierungsobjektmuster. Es handelt sich um ein Muster, das Factory-Methoden verwendet, um die neue Operation zu ersetzen. Das berühmte Jive-Forum verwendet das Factory-Muster häufig. Das Factory-Muster ist überall im Java-Programmsystem zu sehen. Heute stellen wir Ihnen das Factory-Muster in PHP vor.
Empfohlene Tutorials: PHP-Video-Tutorial
1 Fabrikmodell?
Eine Klasse instanziiert eine Klasse über ihre eigene statische Methode und gibt ein Instanzobjekt zurück; 🎜>2. Was sind die Merkmale des Werksmodus?
Klassenbenennungsfunktionen: nameFactory zB: class mysqlFactory{} [Dies dient der Standardisierung, natürlich kann jeder andere Name verwendet werden ] Name der statischen Methode: static public functionfactory($class_name){} [Statische Methode ist die Schnittstelle zwischen der Klasse und der Außenwelt und gibt ein Objekt zurück]
3 . Vorteile?
Wenn sich die verwendete Klasse intern ändert, müssen Sie sie nicht überall ändern, sondern nur in der Klassenfabrikklasse. , Zum Beispiel: Um eine Verbindung zur Datenbank herzustellen, können Sie MySQL, MySQLi, PDO verwenden und je nach Parameterkonfiguration unterschiedliche Datenbankbetriebsklassen verwenden
4. Anwendungsszenarien
Bei der Erstellung einer Zahlungsschnittstelle kann diese in Zukunft verschiedenen Zahlungsgateways entsprechen: Alipay, Tenpay, Online-Banking usw. Um zukünftige Erweiterungen zu erleichtern, ist es im Werksmodus konzipiert. Bestimmen Sie eine Fabrik, die sich auf die Herstellung von Gateway-Schnittstellen spezialisiert hat, abstrahieren Sie sie und machen Sie daraus eine Schnittstellenform, sodass alle Unterklassen ihre Schnittstelle implementieren müssen. Wenn Sie in Zukunft eine Zahlungsmethode hinzufügen, welche Zahlungsmethode Sie verwenden möchten, ändern Sie einfach die Parameter.
Bei der Registrierung eines Benutzers werden Benutzer in viele Rollen eingeteilt. Wie registrierte Benutzer, anonyme Benutzer, Administratorbenutzer usw. Es kann mithilfe der Fabrikidee vollständig implementiert werden, der Code ist außerdem einfach zu warten und es können Operationsklassen für jede Rolle usw. generiert werden.
Das System stellt eine Verbindung zu mehreren verschiedenen Arten von Datenbanken her, MySQL, Oracle, SQLServer
5. Codebeispiele;
interface mysql{ public function connect(); } class mysqli2 implements mysql{ public function connect(){ echo 'mysqli'; } } class pdo2 implements mysql{ public function connect(){ echo 'pdo'; } } class mysqlFactory{ static public function factory($class_name){ return new $class_name(); } } $obj = mysqlFactory::factory('pdo2'); $obj->connect();
Das obige ist der detaillierte Inhalt vonWas ist ein PHP-Factory-Muster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!