装饰模式通过一个类层次,这个类层次中的类都有一致的接口,而且这些类中的任一个都可以与其中的其他的类进行组合而产生相同行为的不同结果。从而达到扩展的目的。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/peacefulsword/DecoratorPattern2006102201.jpg)
如上图所示,通过实现一致的接口,ErrorLog和SiginLog有了一致的行为Writer()。将SiginLog的对象做为参数创建一个ErrorLog,在调用:ErrorLog.Writer()时,就可以在记录登录日志的同时记录错误日志,也就是比SiginLog的一种扩展。
通过装饰模式,可以为现有的对象添加功能而产生更多的执行效果。
通过装饰模式,可以为现有的对象添加功能而产生更多的执行效果。