[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
質問
の違いは何ですか? ファサード , プロキシ , アダプタ および デコレーター デザインパターン
一般的な視点から見ると、このようなパターンは同じことをやっているように見える、つまり。 APIをラップし、それへのアクセスを提供する .
これらのパターンをどのように見分けるか?
あるパターンが他のパターンよりも適している場合の見分け方とは?
どのように解決するのか?
アダプタ は、与えられたクラス/オブジェクトを新しいインターフェイスに適合させます。前者の場合、一般に多重継承が採用される。後者の場合、オブジェクトは適合するアダプタ・オブジェクトにラップされ、受け渡される。ここで解決しようとしている問題は 非互換インターフェース .
ファサード は、複雑な機能のセットへの単純なゲートウェイのようなものです。クライアントが心配しないように、ブラックボックスを作るのです。 インターフェイスをよりシンプルにする .
プロキシ
はプロキシされるクラスと同じインターフェイスを提供し、一般的にそれ自身でいくつかのハウスキーピングを行います。(つまり、重いオブジェクトの複数のコピーを作成する代わりに
X
のコピーを作成し、軽量なプロキシ
P
を管理し、さらに
X
で、必要に応じて呼び出しを翻訳します)。クライアントの問題を解決しています。
重い、あるいは複雑なオブジェクトを管理する
.
デコレーター は、オブジェクトに火薬を追加するために使用します (オブジェクトという用語に注意してください -- 通常、実行時に動的にオブジェクトを装飾します)。オブジェクトの既存のインターフェイスを隠したり損なったりはしませんが 単に実行時に拡張する .
Javaなどの言語では、仮想継承(C++のような多重継承)ができないため、コンパイル時に仮想継承を実現することができません。
多重継承(と恐ろしい菱形)を引きずっているので、次のようなものに注意する必要があります。 ミックスイン -- それは インターフェースの順序付き線形連鎖 を使用して多重継承の問題を回避しています。しかし、ミキシンはそれほどうまく混ざらない。そして、最終的には 特性 -- そう、これらの 行動の無国籍な小さな塊 C++のテンプレート・パラメータでよく目にするものです。Traitsは、振る舞いの合成と分解という問題を、エレガントに解決しようとするもので、多重継承や順序付き連鎖を目指すものではありません。
関連
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] シングルトン・パターンの欠点やデメリットは何ですか?[クローズド]
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Abstract FactoryとFactoryのデザインパターンの違いは何ですか?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み】Proxy、Decorator、Adapter、Bridgeの各パターンの違いとは?
-
[解決済み】アンチパターンとは何ですか?
-
[解決済み] [Builder Design パターンと Factory Design パターンの違いは何ですか?[クローズド]。
-
[解決済み] クロスカットの懸念事項の例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アグリゲート・ルートって何?
-
[解決済み】インターフェイスを作成するタイミングはどのように判断するのでしょうか?
-
[解決済み] [Builder Design パターンと Factory Design パターンの違いは何ですか?[クローズド]。
-
[解決済み] KotlinでBuilderパターンを実装するには?
-
[解決済み] ProxyパターンとDecoratorパターンの違い
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
-
[解決済み] クロスカットの懸念事項の例
-
[解決済み] ゲームにおけるリプレイの概念的な仕組みについて教えてください。
-
[解決済み] デザインパターン 抽象ファクトリーとファクトリーメソッド
-
[解決済み] FacadeパターンとAdapterパターンの違いは何ですか?