装饰模式(Decorator)-动态的个一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
装饰模式是为已有功能动态的添加更多功能的一种方式。
当系统同需要新功能时,向旧类添加新的代码,装饰原有类的核心代码。但这种做法会增加主类的复杂度。
这些新加入的东西仅为了满足一些只在特定情况下才会执行的特殊行为的需要。而装饰模式却提供了一个非常好的方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象。
也因此,当需要执行特殊行为时,客户端代码就可以在运行时根据需要有选择的、按顺序的使用装饰功能包装对象。有效的把类的核心职责和装饰功能区分开,取出相关类中重复的装饰逻辑。