[解決済み] BridgeパターンとAdapterパターンの違い
質問
BridgeパターンとAdapterパターンの違いは何ですか?
どのように解決するのですか?
<ブロッククオートアダプタは設計後に動作させるものであり、ブリッジは設計後に動作させるものです。 は、その前に働く。[GoF, p219]"。
実質的には アダプタ このパターンは、サードパーティや社内に既存のコードがあるけれども、自分ではコントロールできない、あるいは必要なインターフェイスを満たすために変更することができない場合に有効です。 例えば、SuperWeaponsArrayがあり、これは終末装置の細かい配列を制御することができる。
public class SuperWeaponsArray {
/*...*/
public void destroyWorld() {
for (Weapon w : armedWeapons) {
w.fire();
}
}
}
素晴らしい。 しかし、私たちの武器庫には、武器インターフェイスへの変換よりもずっと前に作られた核兵器があることに気づきました。 しかし、我々はそれがここで動作するように本当にしたい...だから我々は何をすべきか...それを楔で固定する!?
NukeWeaponsAdaptor - Nuke クラスをベースとし、Weapon インターフェースをエクスポートしています。 これで、世界を破壊することができますね。 少し不便なようですが、これでうまくいきます。
その ブリッジ 直交する2つの階層があることが分かっている場合、インターフェースと実装を切り離す方法を提供し、非常識な数のクラスを作成しないようにします。 例えば、以下のようなものがあるとします。
MemoryMappedFileとDirectReadFileタイプのファイルオブジェクト。 例えば、様々なソースからファイルを読み込めるようにしたいとします(LinuxとWindowsの実装などかもしれません)。 Bridge は、このような事態を避けるために役立ちます。
メモリマップドWindowsFile メモリマップドLinuxFile 直接読み込みWindowsFile 直接読み込みLinuxFile
関連
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み】Proxy、Decorator、Adapter、Bridgeの各パターンの違いとは?
-
[解決済み】REST APIのログインパターン
-
[解決済み] コード内のスイッチをなくす方法【非公開
-
[解決済み] シェルスクリプトのデザインパターンやベストプラクティス [終了しました]。
-
[解決済み] BridgeパターンとAdapterパターンの違い
-
[解決済み】デザインパターンを勉強するには?[クローズド]。
-
[解決済み] デザインパターン 抽象ファクトリーとファクトリーメソッド
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アグリゲート・ルートって何?
-
[解決済み】Proxy、Decorator、Adapter、Bridgeの各パターンの違いとは?
-
[解決済み】インターフェイスを作成するタイミングはどのように判断するのでしょうか?
-
[解決済み】REST APIのログインパターン
-
[解決済み] KotlinでBuilderパターンを実装するには?
-
[解決済み] ブリッジパターンはどのようなときに使うのですか?Adapterパターンとどう違う?
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
-
[解決済み] リポジトリとサービスの違い?
-
[解決済み] ゲームにおけるリプレイの概念的な仕組みについて教えてください。
-
[解決済み] FacadeパターンとAdapterパターンの違いは何ですか?