ホームページ > バックエンド開発 > PHPチュートリアル > PHP デザイン パターンのアダプター パターンを簡単に説明します。

PHP デザイン パターンのアダプター パターンを簡単に説明します。

墨辰丷
リリース: 2023-03-31 12:34:01
オリジナル
2291 人が閲覧しました

この記事では、PHP の設計パターンにおけるアダプター パターンを中心に紹介し、簡単に説明します。興味のある方は参考にしていただければ幸いです。

目標:

クラスのインターフェイスを顧客が望む別のインターフェイスに変換できるようになり、もともと互換性のないインターフェイスが連携できるようになります。一般的な理解は、さまざまなインターフェイスを統合された API インターフェイスに適応させることです。

ロール:

ターゲット適応ターゲット。このロールは、他のクラスがどのインターフェイスに変換されるかを定義します。これは、期待されるインターフェイスです。
Adapte は、適応する必要があるインターフェイスです。
Adapter アダプター、他の 2 つの役割は既存の役割であり、アダプターの役割は、Adapte および Target インターフェースを適応させるために使用されます。

アプリケーション シナリオ:

データ操作に mysql、mysqli、pdo、sqlite、postgresql などが含まれる場合、生成環境でデータベースを変更する必要がある場合、アダプターモード統一インターフェイスを使用できます。同じことがキャッシュ シナリオにも当てはまります。これにより、キャッシュ戦略 (memcache、redis、apc) の変更がより便利になります。

利点:

適応者は、アダプターを通じて適応ターゲットの適応を完了し、顧客に対して透過的であるという目的を達成します。

サンプルコード:

//适配目标,规定的接口将被适配对象实现
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);
ログイン後にコピー

同上:

ターゲット適応ターゲット: IDataBase インターフェイス
Adapte は適応されています。 : mysql と postgresql のデータベース操作機能
Adapter アダプター: mysql クラスと postgresql クラス

概要: 以上がこの記事の全内容です。みんなの学びが役に立ちました。

関連する推奨事項:

phpファイルの MIME タイプを取得する方法

php はデータベースを操作して、テーブルが存在します。 メソッド

MySQLデータベースを操作するためのphpメソッドとセッションダイアログ

以上がPHP デザイン パターンのアダプター パターンを簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート