设计模式之六 装饰模式

来源:互联网 发布:淘宝买的基金在哪看 编辑:程序博客网 时间:2024/04/29 22:44

装饰模式
  动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
  装饰模式是为已有功能动态地添加更多功能的一种方式。
  装饰模式把每个要装饰的功能放在单独的类中,并让这个类包含它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地,按顺序地使用装饰功能包装对象了。

 

装饰模式的优点是:
1.把类中的装饰功能从类中搬移去除,这样可以简化原有的类。
2.有效地把类的核心职责和装饰功能区分开了。而且可以去除相关类中重复的装饰逻辑。

还是让代码来体现装饰模式的好处吧。

V1.0版 简单地给人搭配一下服饰

如果需要增加“超人”装扮,就得修改Person类,违背了开放-封闭原则

V2.0版本

服饰类与人类分离了,如果添加“超人”装扮则只需要添加类就可以了,但是在客户端需要一条一条地显示,我们应该在内部组装完毕,然后再显示出来。
建造者模式:建造过程必须是稳定的,而现在我们的例子,建造过程是不稳定的,也就是说,通过服饰组合出一个有个性的人完全可以有无数种方案,并非固定的
V1.3 主要是服饰类改变

 

原创粉丝点击