web-dev-qa-db-ja.com

ファサードパターンと抽象的なファクトリパターンの違いは何ですか?

私はインタビューの観点を求めていません。 Strutsフレームワークなどのプロジェクトに実装されたリアルタイムのシナリオを知りたいです。

ファサードパターンは、実装を非表示にする場合に使用されますまたは、一部のクラスまたは一連のクラスのインターフェイスを変更することです。 Builderは、小さなステップで分解することにより、構築プロセスを隠します。

インスタンスの構築に関する詳細を非表示にする場合は、抽象ファクトリパターンが使用されます。
具象クラスを指定せずに、関連オブジェクトまたは依存オブジェクトのファミリを作成するためのインターフェースを提供します。

25
Sumit Singh

これが否定的に投票された理由。これは正当な質問です。

私の見解-ファサードは、ユーザーから内部の実装/サービスを隠すクラスまたはクラスのグループです。

抽象ファクトリーは、オブジェクトの作成に使用されるファクトリーのグループをカプセル化します。一方、ファサードは、作成だけでなく、あらゆる種類の操作に抽象化を提供するために使用できます。

13
Yair Zaslavsky

それらは、まったく関係のないものに使用される2つのパターンです。

Abstract Factory Patternを使用すると、同じものに対してさまざまなビルダーに共通のファクトリビルダーを提供できます。これは、何をビルドするのか、どのファクトリを使用するのかを気にすることなく、共通のもの(製品)で使用することを意図したビルダーのセットへのインターフェースを提供する必要があるときにいつでも使用できます。

代わりにFacadeパターンを使用して、クライアントクラスが認識してはならない多くの異なる操作へのシンプルなインターフェースを提供します。

5
Jack