1. ホーム
  2. design-patterns

[解決済み] FacadeパターンとAdapterパターンの違いは何ですか?

2022-06-21 01:02:17

質問

私は両方の定義を読みましたが、全く同じに見えます。どなたか、その違いを指摘していただけないでしょうか。

ありがとうございます。

どのように解決するのですか?

この ファサードパターン wiki ページに、この件に関する簡単なメモがあります。

アダプタは、ラッパーが特定のインターフェイスを尊重する必要がある場合に使用されます。 が特定のインターフェイスを尊重しなければならず を尊重し、かつポリモーフィックな挙動をサポートしなければならない場合に使用されます。 挙動をサポートする必要がある場合に使用します。一方、ファサード は、より簡単で単純なインターフェイスを使用したい場合に使用します。 ファサードは、より簡単でシンプルなインターフェイスを使いたいときに使われます。

例えば、すべての異なるステレオ システムで動作するようにセットアップしたユニバーサル リモコンを考えるべきだという例えを聞きました。 また、ホームシアターでは、照明を落としたり、シェードをつけたりすることもできます。 これが Facade です。1 つのボタン/機能で、より複雑な手順のセットを処理します。

Adapterパターンは、互換性のない2つのインターフェイスをリンクするだけです。

EDITです。 Adapter パターンの簡単なアナロジー (コメントに基づいて) は、DVI-to-VGA アダプタのようなものでしょう。 最新のビデオ カードはたいてい DVI ですが、古い VGA モニターを持っているとします。 ビデオ カードの DVI 入力に接続し、独自の VGA 入力を持つアダプターを使用すると、新しいビデオ カードで古いモニターを動作させることができます。