3

在什么情况下使用适配器或装饰器模式会更好?

欢迎来自真实程序的示例。

4

2 回答 2

13

我不认为这些可以互换使用。

适配器更改对象的接口以使其适应另一个接口。装饰器在添加功能的同时维护界面。

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 回答