Cet article présente et décrit principalement le modèle d'adaptateur dans les modèles de conception PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Objectif :
Il peut convertir l'interface d'une classe en une autre interface souhaitée par le client, afin que les interfaces initialement incompatibles puissent fonctionner ensemble. L’idée répandue est d’adapter différentes interfaces en une interface API unifiée.
Rôle :
Cible d'adaptation cible Ce rôle définit l'interface vers laquelle les autres classes sont converties, qui est notre interface attendue.
Adaptee est l'interface qui doit être adaptée.
Adaptateur, les deux autres rôles sont des rôles existants et le rôle d'adaptateur doit être nouvellement créé. Il est utilisé pour adapter les interfaces Adaptee et Target.
Scénarios d'application :
Si les opérations de données incluent mysql, mysqli, pdo, sqlite, postgresql, etc., si l'environnement de génération doit modifier la base de données, l'adaptateur Le mode peut être utilisé pour unifier l'interface. La même chose s'applique au scénario de cache. Cela rendra plus pratique la modification de la stratégie de cache (memcache, redis, apc).
Avantages :
La personne adaptée complète l'adaptation de la cible d'adaptation via l'adaptateur pour atteindre l'objectif d'être transparente envers les clients.
Exemple de code :
//适配目标,规定的接口将被适配对象实现 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);
Comme ci-dessus :
Cible d'adaptation cible : interface IDataBase
Adaptee est Adaptateur : fonctions d'opération de base de données de mysql et postgresql
Adaptateur adaptateur : classe mysql et classe postgresql
Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il pourra être utile pour tout le monde, l’apprentissage aide.
Recommandations associées :
Comment obtenir le type de fichier MIME en php
php exploite la base de données pour déterminer si la table existe Méthode
Comment utiliser PHP pour faire fonctionner la base de données MySQL et le dialogue de session
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!