博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HeadFisrt 设计模式03 装饰者
阅读量:6180 次
发布时间:2019-06-21

本文共 327 字,大约阅读时间需要 1 分钟。

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

 

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

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

 

隐喻

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

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

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

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

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

好处

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

转载地址:http://oybda.baihongyu.com/

你可能感兴趣的文章
django-rest-framework之请求与响应
查看>>
RxJava使用介绍
查看>>
toggle的用法(点击更换不同的function)当指定元素被点击时,在两个或多个函数之间轮流切换。...
查看>>
【转】在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法...
查看>>
34.node.js之Url & QueryString模块
查看>>
Self20171218_Assert断言使用
查看>>
fastjson 的简单说明及使用
查看>>
DFS序
查看>>
STM32 CRC32与对应的软件CRC32(转)
查看>>
RGCDQ(线段树+数论)
查看>>
理解Kubernetes(2): 应用的各种访问方式
查看>>
Ionic的NavController 和ModalController 的区别
查看>>
telnet允许root用户登录
查看>>
Kafka的CommitFailedException异常
查看>>
思考与阅读
查看>>
ES6
查看>>
Wireshark中的一些SNMP相关的过滤器
查看>>
java8 新特性
查看>>
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
查看>>
在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
查看>>