装饰模式(decorator),动态的给一个对象添加一些额外的职能,相比较新增职能来说,装饰模式要比通过继承来添加职能要灵活。
一、 各种扩展现有对象职能的方式对比
方式 | 缺点 | 优点 |
---|---|---|
直接修改代码 | 违反设计原则,丝毫没有体现出可复用 、可维护 、可扩展 ,如果后续要求追加新增能,只能再次修改源码 | 直接了当,没有花花肠子 |
继承 | 不灵活,继承是耦合度最高的,生成的子类仅对父类扩展,如果需要扩展的对象过多,类文件相应的也会增多 | 相比较设计模式来说,对开发人员通俗易懂,开发便捷,对于一些仅对单个对象做的改变可以通过继承来扩展 |
装饰模式 | 装饰模式体现了可复用 、可维护 、可扩展 、灵活性高 ,一个装饰对象可以装饰多个对象 | 关系复杂,理解相对困难 |
二、设计模式类图
三、源码
源码戳这
转载于:https://blog.51cto.com/13274853/2044044