ホームページ  >  記事  >  バックエンド開発  >  PHP アダプター モードの概要_PHP チュートリアル

PHP アダプター モードの概要_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:17:111007ブラウズ

ポイント:

1. アダプター パターンは主に「既存のクラスを再利用したいが、インターフェースが再利用環境の要件と一致しない」場合に使用され、レガシー コードの再利用やクラス ライブラリの移行などに非常に役立ちます。

2. アダプタパターンにはオブジェクトアダプタとクラスアダプタの2つの実装構造がありますが、クラスアダプタは「多重継承」実装方式を採用しており、望ましくない高結合をもたらすため、一般的には推奨されません。オブジェクト アダプタは、より疎結合の精神に沿った「オブジェクト結合」方式を採用しています。

実装:

clip_image002

クラスアダプタのパターン構造図(継承)

clip_image004

オブジェクトのアダプターパターン構成図(組み合わせ)

(オブジェクトアダプターのコード実装)

ターゲット: クライアントが使用する特定のドメインに関連するインターフェースを定義します

りー

適応者: 今すぐ適応する必要がある既存のインターフェース

りー

Adapter: Adaptee インターフェースと Target インターフェースを適応させます

りー

適用範囲:

1. システムは既存のクラスを使用する必要がありますが、このクラスのインターフェイスはシステムのニーズを満たしていません。

2. 将来導入される可能性のあるクラスなど、相互に密接に関連していないいくつかのクラスを操作するために使用できる再利用可能なクラスを作成したい。これらのソース クラスには、必ずしも複雑なインターフェイスがあるわけではありません。

3. (オブジェクトアダプターの場合) 設計上、複数の既存のサブクラスのインターフェースを変更する必要があり、クラスアダプターパターンを使用する場合、サブクラスごとにアダプターを作成する必要があり、現実的ではありません。

効果、メリット、デメリット:

クラスアダプターの場合:

1. 特定のアダプター クラスを使用して、Adapte と Target を一致させます。その結果、クラスとそのすべてのサブクラスを一致させたい場合、クラスのアダプターはその仕事を実行できません。

2. アダプターは Adaptee のサブクラスであるため、アダプターが Adaptee の一部の動作をオーバーライド (再定義) できるようにします。

オブジェクトアダプターの場合:

1. アダプターが複数の Adaptee、つまり Adaptee 自体とそのすべてのサブクラス (サブクラスがある場合) を同時に操作できるようにします。アダプターは、すべての Adapte に一度に機能を追加することもできます。

2. Adaptee の動作をオーバーライド (再定義) することが困難になります。 Adaptee メソッドをオーバーライドする必要がある場合は、まず Adaptee メソッドをオーバーライドするための Adaptee のサブクラスを作成し、次にこのサブクラスを適応用の実際の Adaptee ソースとして使用する必要があります。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325744.html技術記事重要なポイント: 1. アダプター パターンは主に、「既存のクラスを再利用したいが、インターフェイスが再利用環境の要件と一致しない」状況で使用されます。レガシー コードの再利用、クラス ライブラリの移行などの面で...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。