Maison  >  Article  >  développement back-end  >  Une brève introduction au modèle d'adaptateur dans les modèles de conception PHP

Une brève introduction au modèle d'adaptateur dans les modèles de conception PHP

墨辰丷
墨辰丷original
2018-06-11 09:52:362191parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn