Heim  >  Artikel  >  Backend-Entwicklung  >  Beschreiben Sie kurz das Adaptermuster in PHP-Entwurfsmustern

Beschreiben Sie kurz das Adaptermuster in PHP-Entwurfsmustern

墨辰丷
墨辰丷Original
2018-06-11 09:52:362249Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn