1

「ファサード パターン」を使用してインターフェイスを設計しようとしています。ただし、ここで指摘されているように:

http://www.scribd.com/doc/6599003/7/Principle-of-Least-Knowledge-PLK

これにより、クラスに多くのアクセサ メソッドを作成する必要があります。上記のリンクによると、PLK のバリエーションとして、具体的なオブジェクトへの参照ではなく、インターフェイス参照を返すことができます。

私の質問は、これがどのように問題を解決するのですか? インターフェース参照を返したら、とにかく適切なクラスでインスタンス化する必要があります。最終的には、そのオブジェクトからメソッドを呼び出すことになりますよね?

4

1 に答える 1

0

特定のパターンを使用してインターフェイスを設計していると言うと、理由を知らずにそのパターンを使用しているように聞こえます。解決しようとしている設計上の問題はありますか? はいの場合、インターフェイスを返すことで問題が解決するかどうかは明らかです。

名前が示すように、Facade パターンは発信者に見られたくないものを隠すために使用されます。何かを非表示にする正当な理由は複雑さです。複雑なコードがある場合は、呼び出し元に簡素化されたインターフェイスを提供するファサードの背後に複雑さを隠すことができます。呼び出し元と呼び出されたコードの間の結合が緩いため、これは素晴らしいことです。実装の詳細が変更された場合、変更をファサードの背後に隠すことができ、呼び出し元は気にする必要がありません。

何かを隠す方法の 1 つは、正確な型を隠すことです。Fooとを実装するクラスBarBaz、 で宣言されたメソッドを使用する必要がある呼び出し元があるとしますBaz。次に、複雑さを隠す 1 つの方法は、インターフェースのみを返すことです。「何かを実装するものBaz」です。Foo次に、呼び出し元はorを気にする必要Barがなく、さらに良いことに、呼び出し元はFooorBar をまったく使用できません。あなたは自由にFoo、そしてBarあなたが望むように変更することができます。これは良いことです.

于 2012-07-24T14:34:34.990 に答える