【发布时间】:2009-05-06 11:16:12
【问题描述】:
我之前对装饰器模式的理解是,你用WindowDecorator继承Window,然后在被覆盖的方法中,在调用Window的上述方法的实现之前做一些额外的工作。类似于以下内容:
public class Window
{
public virtual void Open()
{
// Open the window
}
}
public class LockableWindow : Window // Decorator
{
public virtual void Open()
{
// Unlock the window
base.Open();
}
}
然而,这实质上是对装饰进行硬编码,那么如何将其重构为使用组合而不是继承?
【问题讨论】:
标签: c# design-patterns decorator composition