2012-02-20 10 views
7

私はデザインパターンの問題に取り組んでいます。 ( - オブザーバーデザインパターンを実装し、たとえばNSNotificationCenter)がデザインパターン "Facade"

この場合、私はデザインパターンを実装したい「 ファサード

私は「ココアタッチは」私たち私たちのプロジェクトでデザインパターンを適用するための完全なソリューションを提供していることを知っています

私の質問は次の通りです: - デザインパターン 'ファサード'と、オブザーバデザインパターンの場合の機能を持つことができますか?

今、私はこのような「ファサード」を実装します。

例えば、私はいくつかの計算を実装していくつかのクラスを持っています。 'Facade'クラスは、計算に必要なすべてのクラスを組み合わせています。

たとえば、クラスA、B、CおよびFacade(A、B、Cクラスを含む)があります。

何かを計算したいときは、私は自分の 'ファサード'を作成し、いくつかの引数を計算に渡します。この場合、クラスA、B、Cについてはわかりません。このFacadeオブジェクトは1つのアクセスポイントだけを提供します。

このデザインパターンはオブジェクトをカプセル化し、アプリケーションを簡素化します。

正しく実装されていますか?

答えて

7

ファサードパターンピザ呼び出しサービスを実装するための良い例です。 たとえば、ピザサービス(サブシステム)は非常に大きく、注文部門、割引部門、出荷部門の3つの部門(インタフェース)で構成されています。各部門には独自のロジックとインターフェースがあります。 ファサードパターンを単純に実装することができます。 Here詳細については、この例を参照してください。

+0

おかげで多くの良い例! –

1

ファサードパターンの背後にある動機は、よく使用されるケースのための簡略化されたインターフェイスを提供する一方で、単純化されたインターフェイスを通過し、必要なときにファサードの背後にあるクラスのより複雑な側面と対話する機能に対応することです。あなたの実装を説明したように、それは確かに説明に合っているように思われ、通知/オブザーバーパターンと組み合わせてファサードパターンを使用できない理由はありません...

4

正しい説明です私は実装が表示されません)。現実のファサードパターンとの良い関連付けは、リモートコントロールです。テレビ機能、DVDなどを実行できます。

+0

返信ありがとうございます!私はそれが好きです(私はテレビとDVDを意味します) –

7

ファサードは、一連のインターフェイスとの統一されたインターフェイスとして定義されています。複雑さを軽減するために高レベルのインターフェイスの一種です。いくつかのクラスを扱い、それぞれのAPIを知っているのではなく、ファサードに縮小しました。あなたの説明は私には分かります。

関連する問題