Decorator 的應用

manbaum發表於2003-03-25
Decorator 其實是很普通的技術,估計大家都在用它而沒有把它抽象為一種模式而已。其核心就是對已有的實現中可覆蓋的方法進行覆蓋,以便增加新的功能。

如 banq 在 Decorator 中所述,為了在打樁前做些必要的準備工作,比方要在方型樁上先釘個釘子(即所謂修飾),實現如下所述:

public interface IPeg
{
    void Insert(String message);
}

public SquarePeg implements IPeg
{
    public void Insert(String message)
    {
        // ...
    }
}

public DecoratedSquarePeg extends SquarePeg
{
    private void AddNail()
    {
        // 加釘子 ...
    }

    public void Insert(String message)
    {
        AddNail();
        super.Insert(message);
    }
}
<p class="indent">

相關文章