ホームページ >バックエンド開発 >PHPチュートリアル >PHPデザインパターン - ファサードパターン

PHPデザインパターン - ファサードパターン

WBOY
WBOYオリジナル
2016-06-23 13:34:36835ブラウズ

免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。

ファサード モード (アピアランス モードとも呼ばれる) は、複数のサブシステムの複数の異なるインターフェイスにアクセスするための統合インターフェイスを提供することを指し、サブシステム内のインターフェイスのグループに統合された高レベル インターフェイスを提供します。サブシステムを使用すると使いやすくなります。


ケース: 株式投資、新規株主は株を作るための証券知識が理解できず、損をしやすいため、初心者は株の運用を任せるべきです。ファンド会社、ファンド会社に証券の知識を理解していただき、新規投資家はファンド会社に株式を預けて運用していただくことで、どの銘柄の動向を知らずに株式の売買を完了することができます。ここではファンド会社は単なる見せかけ、新規投資家にとっての見せかけにすぎない。


UML クラス図:

役割分析:

ファサード (FacadeCompany) 役割: この役割は、クライアント要求を適切なサブシステム オブジェクトにプロキシする高レベルのインターフェイスをカプセル化し、ファサード パターンのコア インターフェイスです。 。

サブシステム (ICBC) ロール: サブシステムの特定の機能を実装し、FacadeCompany オブジェクトによって割り当てられたタスクを処理します。サブシステムには FacadeCompany に関する情報がなく、FacadeCompany オブジェクトへの参照もありません。利点:


1) サブシステムコンポーネントを顧客から保護できるため、顧客が処理するオブジェクトの数が減り、サブシステムがより使いやすくなります。

2) サブシステムと顧客の間の疎結合関係を実現しますが、サブシステム内の機能コンポーネントは多くの場合密結合です。疎結合関係により、サブシステムのコンポーネントの変更が顧客に影響を与えないようになります。ファサード パターンは、階層システムを確立するのに役立ち、オブジェクト間の依存関係を階層化するのにも役立ちます。


3) ファサード モードは、複雑な循環依存関係を排除できます。これは、クライアント プログラムとサブシステムが別々に実装されている場合に特に重要です。大規模なソフトウェア システムでは、コンパイルの依存関係を減らすことが重要です。サブシステム クラスが変更された場合、時間を節約するために再コンパイル作業を最小限に抑えたいと考えています。 Facade を使用すると、コンパイルの依存関係を減らし、重要なシステムの軽微な変更に必要な再コンパイル作業を制限できます。

4) ファサード モードは、通常、1 つのサブシステムをコンパイルするのに他のすべてのサブシステムをコンパイルする必要がないため、異なるプラットフォーム間でのシステムの移植プロセスを簡素化するのにも役立ちます。


PHP オブジェクト指向デザインパターン

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。