【发布时间】:2018-01-20 10:52:39
【问题描述】:
我正在学习软件设计模式,想知道桥接模式和装饰器模式的区别
interface Iconcept
{
void action();
}
class concept : Iconcept
{
public void action()
{
Console.WriteLine("walking ");
}
}
class decoratorA : Iconcept
{
Iconcept concept;
public decoratorA(Iconcept concept)
{
this.concept = concept;
}
public void action()
{
concept.action();
Console.WriteLine("with his dog");
}
}
class decoratorB : Iconcept
{
Iconcept concept;
public decoratorB(Iconcept concept)
{
this.concept = concept;
}
public void action()
{
concept.action();
Console.WriteLine("in the rain");
}
}
class client
{
static void Main()
{
Iconcept concept = new concept();
concept.action();
new decoratorA(concept).action();
new decoratorB(concept).action();
Console.ReadLine();
}
}
装饰器模式
定义:动态地为对象附加额外的职责。装饰器为扩展功能提供了一种灵活的替代子类的方法。
现在,如果我们将此代码用于装饰器模式,我有一个名称概念的实现,并且我正在扩展/装饰该实现,并将新的实现类名称命名为 decoratorA 和 decoratorB
桥接模式
定义:将抽象与其实现分离,以便两者可以独立变化。
我有一个名为 concept 的旧实现,并且在不对旧实现进行任何更改的情况下,我正在实现一个新实现。
这两种模式有什么区别
【问题讨论】:
标签: design-patterns decorator bridge