簡介

Decorator Pattern(裝飾者模式)是一種結構型設計模式,允許你動態地為物件新增行為,而不需修改原本的程式碼。

問題

當需要在不改變原有類別的情況下,動態地擴充物件功能時。

解決方案

將功能包裝在裝飾者類別中,並在執行時動態組合。

C# 範例

public interface IComponent {
    void Operation();
}

public class ConcreteComponent : IComponent {
    public void Operation() {
        Console.WriteLine("基本功能");
    }
}

public class Decorator : IComponent {
    private IComponent _component;
    public Decorator(IComponent component) {
        _component = component;
    }
    public void Operation() {
        _component.Operation();
        Console.WriteLine("新增功能");
    }
}

結論

Decorator Pattern 讓功能擴充更具彈性,符合開放封閉原則。