装饰模式(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