设计模式之六 装饰模式

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

 

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

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

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

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

V2.0版本

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值