3

Adapter パターンと Decorator パターンのどちらを使用した方がよいのは、どのような場合ですか?

実際のプログラムからの例は大歓迎です。

4

2 に答える 2

13

これらを交互に使用することはできないと思います。

アダプターは、オブジェクトのインターフェースを変更して、別のインターフェースに適合させます。Decorator は、機能を追加しながらインターフェイスを維持します。

public class Foo
{
}

public class Bar
{
}

// adapter takes Foo and pretends it is Bar
public class FooBarAdapter : Bar
{
   public FooBarAdapter( Foo foo )
   {
   }
}

// decorator maintains the interface and adds features
public class FooDecorator : Foo
{
    public FooDecorator( Foo foo )
    {
    }
}
于 2013-07-18T18:52:23.540 に答える
5

これらの UML ダイアグラム コードとのリンクがあり、説明します

アダプター: http://www.dofactory.com/Patterns/PatternAdapter.aspx

=> 異なるクラスのインターフェースを一致させる

デコレーター: http://www.dofactory.com/Patterns/PatternDecorator.aspx

=>オブジェクトに責任を動的に追加する

于 2013-07-18T18:46:46.693 に答える