デコレータパターンについての私の以前の理解は、で継承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();
}
}
ただし、これは基本的に装飾をハードコードするので、継承の代わりに構成を使用するようにこれをどのようにリファクタリングしますか?