在什么情况下使用适配器或装饰器模式会更好?
欢迎来自真实程序的示例。
我不认为这些可以互换使用。
适配器更改对象的接口以使其适应另一个接口。装饰器在添加功能的同时维护界面。
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 )
{
}
}
你有这些带有 uml 图表代码的链接并解释
适配器: http: //www.dofactory.com/Patterns/PatternAdapter.aspx
=> 匹配不同类的接口
装饰器:http: //www.dofactory.com/Patterns/PatternDecorator.aspx
=> 动态地为对象添加职责