In diesem Artikel werden hauptsächlich die Adaptermuster in PHP-Designmustern vorgestellt und kurz beschrieben. Ich hoffe, dass sie für alle hilfreich sind.
Ziel:
Es kann die Schnittstelle einer Klasse in eine andere vom Kunden gewünschte Schnittstelle konvertieren, sodass die ursprünglich inkompatiblen Schnittstellen zusammenarbeiten können. Das gängige Verständnis besteht darin, verschiedene Schnittstellen in eine einheitliche API-Schnittstelle anzupassen.
Rolle:
Zielanpassungsziel Diese Rolle definiert, in welche Schnittstelle andere Klassen konvertiert werden, was unsere erwartete Schnittstelle ist.
Adaptee ist die Schnittstelle, die angepasst werden muss.
Adapteradapter, die anderen beiden Rollen sind vorhandene Rollen und die Adapterrolle muss neu erstellt werden. Sie wird zum Anpassen der Adaptee- und Target-Schnittstellen verwendet.
Anwendungsszenarien:
Wenn Datenoperationen MySQL, MySQLi, PDO, SQLite, PostgreSQL usw. umfassen und die Generierungsumgebung die Datenbank und den Adapter ändern muss Der Modus kann zur Vereinheitlichung der Schnittstelle verwendet werden. Dasselbe gilt für das Cache-Szenario. Dadurch wird es bequemer, die Cache-Strategie (Memcache, Redis, APC) zu ändern.
Vorteile:
Die angepasste Person schließt die Anpassung des Anpassungsziels durch den Adapter ab, um den Zweck der Transparenz für Kunden zu erreichen.
Beispielcode:
//适配目标,规定的接口将被适配对象实现 interface IDatabase { public function connect($host, $username, $password, $database); public function query($sql); } //适配器 class Mysql implements IDatabase { protected $connect; public function connect($host, $username, $password, $database) { $connect = mysql_connect($host, $username, $password); mysql_select_db($database, $connect); $this->connect = $connect; //... } public function query($sql) { //... } } //适配器 class Postgresql implements IDatabase { protected $connect; public function connect($host, $username, $password, $database) { $this->connect = pg_connect("host=$host dbname=$database user=$username password=$password"); //... } public function query($sql) { //... } } //客户端使用 $client = new Postgresql(); $client->query($sql);
Wie oben:
Zielanpassungsziel: IDataBase-Schnittstelle
Adaptee ist angepasster Autor : Datenbankbetriebsfunktionen von MySQL und Postgresql
Adapteradapter: MySQL-Klasse und Postgresql-Klasse
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann nützlich sein Das Lernen aller hat geholfen.
Verwandte Empfehlungen:
So erhalten Sie den Datei-MIME-Typ in PHP
PHP betreibt die Datenbank Bestimmen Sie, ob die Tabelle vorhanden ist. Methode
So verwenden Sie PHP zum Betreiben der MySQL-Datenbank und des Sitzungsdialogs
Das obige ist der detaillierte Inhalt vonBeschreiben Sie kurz das Adaptermuster in PHP-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!