2011-10-14 18 views
6

GoFによるデザインパターン(Eric Gammaなど)には、透過性のために使用される双方向アダプタパターンが記載されています。 2つの異なるクライアントが同じオブジェクトを別々に表示したい場合に便利です。 C++の例をいくつか与えることができ、実用的なシナリオを使用できますか?双方向アダプタパターンとは

+0

はこの宿題ですか? –

+0

:)いいえいいえ..宿題ではなく、面接の準備をしていますが、アダプターのパターンを理解していますが、双方向アダプターの使い方を理解できませんでした。私はこの本の例が私が気づいていないSmalltalkにあるので、C++に言及しました。 – Priyanka

+0

しかし、本の例はすべてC++またはSmalltalkにあります。なぜGoFによって与えられたコードを見てみませんか?それともスモールトークで与えられたものでしたか?申し訳ありませんが、ここに私のテキストをチェックする必要はありません。 – duffymo

答えて

0

Go4が説明しているように(私にとっては143ページ)、これは複数の継承に対するアダプタの拡張です。 1つのインターフェースタイプを拡張する代わりに、アダプタークラスは2つ拡張します。

2

hereの説明は非常に良いとわかりました。これはC#の例ですが、説明は明確で、この例はC++コードに簡単に変換できます。この例もかなり詳細です。

+1

2ウェイ・アダプターとクラシック・クラス・アダプターの唯一の違いは、1)クラシック・クラス・アダプターは、Itarget /クライアント・インターフェースだけでアクセスできること2)双方向アダプターはItarget /クラスインタフェース、適応インタフェース – Priyanka

1

2ウェイアダプターは、ターゲットとアダプターの両方のインターフェースを実装するアダプターです。適応されたオブジェクトは、Targetクラスを扱う新しいシステムではTargetとして、またはAdapteeクラスを扱う他のシステムではAdapteeとして使用できます。この考え方をさらに進めて、n個のシステムに適応するn個のインターフェイスを実装するアダプタを持つことができます。複数の継承をサポートしていないシステムでは、双方向アダプタとnウェイアダプタを実装することは難しいです。アダプタがTargetクラスを拡張する必要がある場合、Adapteeのような別のクラスには適用できないため、Adapteeはインタフェースであり、すべての呼び出しをアダプタからAdapteeオブジェクトに委譲する必要があります。

Adapter Design Pattern

出典:http://www.oodesign.com/adapter-pattern.html