10

私が理解したように、Facade パターンの意図は

サブシステム内の一連のインターフェース統一されたインターフェースを提供します。Facade は、サブシステムを使いやすくする上位レベルのインターフェイスを定義します。これを使用して、多数の複雑なオブジェクトの相互作用を単一のインターフェースに簡素化できます。

ここに画像の説明を入力

私が理解したことから、パターンの目標はサブシステムの複雑さを隠すことです(たとえば、ファサードクラスはサブシステムの多くのオブジェクトを呼び出します)。

しかし、Laravel の Facade では、(サブシステムではなく)別のクラスを呼び出す1 つのクラスしかありません。私には、より多くのように見えます。誰かが私にこれを明確にするのを助けることができますか.ProxyFacade

4

1 に答える 1

1

この本、アーキテクトのPHPデザインパターンへのガイドのメモ、

Facade の目的は、多くのオブジェクトで構成されるサブシステム全体に対して、よりシンプルなインターフェイスを提供することです。

私の理解では、デザインパターンは「アプリオリな」義務ではなく、一般的に発生する問題に対する一般的な再利用可能なソリューションを実装するというコミットメントです。

Laravel 4 は Facade Design Pattern を利用しています。これにより、静的 API を介して表現力豊かな構文を提供しながら、内部でテスト可能に保つことができます。ファサードは、コードの複雑さ/実装を隠します。実際、Laravel のファサードは単一のオブジェクトを実装しています。ただし、Laravel の App Facade (IoC コンテナー) がアプリケーション全体をカプセル化していることを無視してはなりません。

プロキシ パターンはリクエストをインターセプトし、フィルタリング、ACL、変換などの追加作業を行います。「消費者」オブジェクトは、プロキシ層によって提供される追加作業を幸いなことに認識していません。

于 2013-10-25T08:09:55.023 に答える