码迷,mamicode.com
首页 > 其他好文 > 详细

HeadFisrt 设计模式03 装饰者

时间:2014-06-11 13:03:28      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   com   width   

类应该对扩展开放, 对修改关闭.

 

所谓装饰者模式, 是指用其他的类来装饰某个类,

装饰者说白了就是使用 has-a 来代替 is-a

 

隐喻

咖啡店, 有很多种咖啡, 咖啡里还要增加一些 milk, 面包片啊, 等等. 针对加的东西不同, 计算出来的费用不同, 那么我们需要怎么做呢?

1. 首先创建一个 coffee 基类(有抽象的cost方法)

2. 黑咖啡, 原味咖啡, 等咖啡继承 coffee 基础类, 是 is-a的关系

3. 创建一个装饰基础类, 用来装饰咖啡( 有抽象的cost方法)

3. milk, 面包片等是用来装饰咖啡的, 比如黑咖啡中加入milk, 所以继承装饰基类

好处

比如你计算费用时, 所有装饰者的费用自己就可以调用计算.

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣

HeadFisrt 设计模式03 装饰者,布布扣,bubuko.com

HeadFisrt 设计模式03 装饰者

标签:style   blog   http   color   com   width   

原文地址:http://www.cnblogs.com/moveofgod/p/3772583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!