博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Head First Design Pattern 读书笔记(3)装饰者模式
阅读量:6270 次
发布时间:2019-06-22

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

hot3.png

Head First Design Pattern 读书笔记(3) Decorator Pattern 装饰者模式

##Decorator Pattern 类图 装饰者模式类图

##定义 装饰者模式:通过让组件类与装饰者类实现相同的接口,装饰类可以在不修改原有组件类的情况下,动态拓展组件类的新功能,并且可以无限拓展下去。

##几个OO的原测

  1. 类应该对修改关闭,对拓展开放。-->“开闭原则”,即尽量不要修改已经在用的类,而通过继承的方式去拓展类的新功能。
  2. 设计类时应当尽量考虑不修改原有的代码。-->同“开闭原则”
  3. 组合与代理的方式经常用来在运行时动态地添加新功能。

##关于装饰者模式

  1. 装饰者模式每次新增功能都会重新封装一个装饰者类,这样可能带来“类爆炸”问题,代码中会有非常多结构相似的类,对一开始接触的人来说不好理解与维护。
  2. 装饰者类是它所装饰的组件类的一个镜像,它有原来组件的所有功能,还有新功能。
  3. 如果装饰者类跟组件类有同样函数签名的方法,在该方法中,装饰者在调用组件方法之前/后加入新的处理逻辑来给组件增加新功能。
  4. java中的输入输出流相关类就是通过Decorator Pattern实现的。

转载于:https://my.oschina.net/u/1010578/blog/363287

你可能感兴趣的文章
设计模式 - 模板方法模式(template method pattern) 具体解释
查看>>
mysql判断一个字符串是否包含某子串 【转】
查看>>
a bad dream
查看>>
FD_CLOEXEC用法及原因_转
查看>>
element UI 的学习一,路由跳转
查看>>
RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较
查看>>
Spring JavaBean属性值的注入方式( 属性注入, 特殊字符注入 <![CDATA[ 带有特殊字符的值 ]]> , 构造器注入 )...
查看>>
【Linux】Linux下统计当前文件夹下的文件个数、目录个数
查看>>
Hibernate_14_数据连接池的使用
查看>>
Codeforces Round #271 (Div. 2) D. Flowers (递推 预处理)
查看>>
jacky自问自答-java并发编程
查看>>
Struts2+JSON数据
查看>>
zTree实现单独选中根节点中第一个节点
查看>>
Cocos2D-x设计模式发掘之中的一个:单例模式
查看>>
很强大的HTML+CSS+JS面试题(附带答案)
查看>>
用树莓派实现RGB LED的颜色控制——C语言版本号
查看>>
VC2012编译CEF3-转
查看>>
java 自己定义异常,记录日志简单说明!留着以后真接复制
查看>>
Android 使用AIDL实现进程间的通信
查看>>
机器学习(Machine Learning)&深度学习(Deep Learning)资料
查看>>