我之前對裝飾器模式的理解是,您繼承了Window
和WindowDecorator
,然後在重寫的方法中,在調用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();
}
}
然而,這本質上的硬編碼裝修,所以怎麼會變成這樣被重構用的組合物,而不是繼承?
不是生鏽的,雖然虛擬沒有必要實現接口方法 – 2009-05-06 11:37:35
謝謝。實際上,我從沒有寫過.Net 1.0。只是這個問題不需要任何新的語言功能。 – 2009-05-06 11:39:21