簡介
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 讓功能擴充更具彈性,符合開放封閉原則。