4

javaのファサードデザインと抽象化の違いは何ですか? 私は単にJavaのインターフェースと同じくらい簡単で、同じ目的を果たしていると感じています。

クライアントの最初の連絡先であり、より多くのインターフェイスとクラスを隠していると言っている人をもっと見ました。しかし、上記のすべてがインターフェイスの目的でもあります.!!!

ここで混乱!!!!!. 小さな例を挙げて、私を助けてください。

ありがとう、プニス

4

3 に答える 3

6

ウィキペディアから:

ファサードは、クラス ライブラリなどのより大きなコード本体への単純化されたインターフェイスを提供するオブジェクトです。ファサードは次のことができます。

  • ファサードには一般的なタスクのための便利なメソッドがあるため、ソフトウェア ライブラリの使用、理解、およびテストが容易になります。

  • 同じ理由で、ライブラリを読みやすくします。ほとんどのコードはファサードを使用するため、ライブラリの内部動作に対する外部コードの依存関係を減らし、システム開発の柔軟性を高めます。

  • 適切に設計された 1 つの API で、設計が不十分な API のコレクションをラップします (タスクのニーズに応じて)。

アダプターは、ラッパーが特定のインターフェイスを尊重し、多態的な動作をサポートする必要がある場合に使用されます。一方、ファサードは、より簡単または単純なインターフェースで作業したい場合に使用されます。

これは、ファサードがインターフェイスではなく、動作を伴う実際のオブジェクトであることを意味します。インターフェイスの役割は、実装でサポートする必要がある操作を指定することですが、ファサードは、たとえば、一般的に使用されるセットアップやデフォルト値などを提供することにより、コード本体 (ライブラリ全体など) を使用するための簡単で便利な方法を提供します。 .

于 2012-06-06T12:06:13.990 に答える
1

ファサード パターンはデザイン パターンです。すべての設計パターンは抽象化です。ここでの真の問題は、「抽象化とは何か?」です。

抽象化とは、詳細を隠すことです。たとえば、各ドメイン モデル (ユーザー、アイテム、アクションなど) ごとにサービスを備えたアプリがあるとします。API のコンシューマーがその詳細を知る必要がないようにしたい場合 (つまり、正しいサービスを取得することや、それらを一緒に使用する方法について心配することなど)、「ファサード」を設定します。他のすべてのサービスが行うすべてのことを、1 つのインターフェイスで行います。これは抽象化です。なぜなら、Facade ユーザーは、N 個のサービスが内部にあることを知らず、統一された実装を使用しているだけなので、それらがどのように使用されているかを気にすることもないからです。

デザイン パターンを使用して詳細を抽象化しました。

于 2012-06-06T12:03:06.893 に答える
0

Facade パターンは、実際のクラスへのインターフェイスの抽象化をはるかに超えています。アプリケーションの状態をチェックして、Facade メソッドの動作を判断するために使用できます。

Facade.GetUserDetails()

データベース接続があるかどうか、そうでない場合はユーザーがキャッシュ内にあるかどうかなどを確認するためのチェックを実行します。

また、ファサードのタイプに応じて

IFACADE --> テニス : IFACADE --> スカッシュ : IFACADE

これは、抽象化とファサードの力を利用できる場所です...

于 2012-06-06T12:05:29.613 に答える