6

「抽象化」と「ファサード」の違いは何ですか?

違いはありますか?または、用語は交換可能ですか?

4

4 に答える 4

13

ファサードパターンは、より大きく、場合によってはより複雑なコードベースへの単純化されたインターフェイスです。コードベースは、単一のクラスまたはそれ以上の場合があります。ファサードはあなたにそれへの単純なインターフェースを与えるだけです。

抽象化は、概念を表すために使用されますが、特定のインスタンスにバインドされることはありません。(つまり、抽象クラス)。これは、(ファサードパターンのように)単純化することを意味するのではなく、「共通の」インターフェイスまたは表現を作成することを意味します。

于 2010-02-18T12:53:06.950 に答える
5

ファサードは特定のデザインパターンであり、パッケージ/モジュール内の内部要素を、明確に定義されたインターフェイスの背後にあるクライアントから隠すことを目的としています。通常、複数のインターフェイス/クラスを1つの共通のインターフェイス/クラスの背後に隠しているため、その名前が付けられています。

「抽象化」は一般的な用語であり、何かの具体的な詳細を外の世界から隠すことを意味します。

したがって、これら2つは互換性のある用語ではありません。

于 2010-02-18T12:52:18.650 に答える
1

ファサードはGoFデザインパターンであり、非常に特殊です。本質的には、アプリケーションの本体から複雑すぎる機能を隠すことです。

抽象化は、サービスの機能をクライアントから隠すことに関連する、より曖昧な用語です。

于 2010-02-18T12:52:55.600 に答える
1

私にとって抽象的とは、物のコレクションの共通部分を取り、それらから基本物を作成することを意味します。これは、親クラスのように、コレクションが利用できるものです。

ファサードは(文字通り)顔であるため、基本クラスのアナロジーは完全には当てはまりません。ファサードはよりインターフェースであるため、ファサードを使用するものに関連している必要はありません。マスクのようなものだと思います。たとえば、私のクラスには「使い捨て」マスクがあります。

したがって、私の考えでは、違いは、抽象的なパターンでは階層を構築できるのに対し、ファサードパターンではクラスが類似しているように見えることです。

于 2010-02-18T12:55:27.070 に答える