3

私はデザインパターンについて読んでいますが、自分では答えられないと思う質問があります。Adapter、Bridge、Decorator は構造的に異なるのでしょうか、それともコードは同じですが、異なるセマンティクスが適用されているだけですか?

4

1 に答える 1

11

構造的に、パターンは非常に似ています。多くの違いは、パターンの意図にあり、パターンの構築方法にはありません。

アダプタパターンは、あるインターフェイスを持つクラスを別のインターフェイスのクラスに適合させるために使用されます。通常、適応させるクラスは、アクセスできない(または少なくとも変更できない)レガシーコードまたはライブラリ内にあります。アダプターとの主な違いの1つは、適応しているインターフェースと提供しているインターフェースが異なることです。

ブリッジパターンは、あるインターフェイスを持つクラスを別のインターフェイスのクラスにブリッジできるという点で、アダプタと非常によく似ています。ただし、主な違いは意図です。ブリッジパターンを使用して、クラスはこのように機能するように明示的に設計されました。開発者は引き続き委任されているクラスにアクセスできますが、開発者は意図的にこの方法でクラスを設計することを選択しました。

デコレータパターンは、装飾されているクラスと同じインターフェイスを返します。これは、既存のクラスの動作を拡張するために使用され、そのインターフェースを変更するためには使用されません。

于 2011-12-08T01:29:32.820 に答える