设计模式-装饰模式(包装模式)

        装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能,通过创建包装对象来包裹真实的对象。

        可以动态的给一些对象添加职责,当系统需要新功能的时候,一般是向旧类中添加新代码,这些新加的代码通常装饰了原有类的核心职责或主要行为,这种做法的问题在于,他们在主类中加入了新的字段、方法、逻辑等,从而增加了主类的复杂程度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。装饰模式可以将其隔离开来。它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择的,按顺序的使用装饰功能来包装对象了。

        装饰模式把类中的装饰功能从类中移除,简化原类,当装饰方法修改时也不会对原类产生影响,有效的把类的核心职责和装饰功能区分开,而且可以去除相关类中重复的装饰逻辑。

猜你喜欢

转载自blog.csdn.net/qq_38402364/article/details/80924718