装饰模式(Decorator)用于给动态给对象添加一些额外的职责, 如果一个方法用于向文件中写入数据,希望添加一些功能在这个方法上, 要求在写前打开文件,写后关闭文件,如下:
public interface ILog { void Write(); } // interface ILog public class FileLog : ILog { public void Write() { // Write File } } // class FileLog public class Decorator { private ILog m_log; public Decorator(ILog log) { m_log = log; } public void Write() { // Open File m_log.Write(); // Close File } } // class Decorator