设计模式-装饰者模式
来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/07 09:47
最近在学习设计模式,就记录一些自己的学习过程,希望和大家共同进步,有意见不一致的请提出指点。
Deaorator pattern 装饰者模式:
who-谁去做?角色定义:
Component:被装饰者和装饰者抽象共同实现的接口或者抽象类。
ComponentDeaorator:具体的被装饰者对象。
Deaorator:装饰者实例的抽象类。
ConcreteDeaorator:具体的装饰者对象。
装饰者模式的UML图解:
what-用于做什么?
可以使用一个或者多个装饰类包装对象,可以根据需求在运行时动态的、不限量的给对象进行包装。
why-为什么要使用它?
对扩展开放,对修改关闭,遵循开放 - 关闭原则,面向对象编程推荐我们尽量多使用组合,少使用继承,装饰者可以动态的给对象进行装饰,扩展功能方面,是比继承更好的替代方案。
应用场景:
动态、透明地给特定对象添加职责,也就是说,不会影响到其他对象。
用于那些可以随时撤销的职责。
当用子类进行扩展是不切实际的时候。有时需要大量的独立扩展并将导致支持各种组合的子类数量大爆炸。或者一个类的定义可能是隐藏的是子类无法获取到的。
demo就不贴了
0 0
- 设计模式-装饰者模式
- 设计模式:装饰者模式
- 设计模式:装饰者模式
- 设计模式: 装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 设计模式-装饰者模式
- 设计模式------------装饰者模式
- 设计模式--装饰者模式
- 设计模式:装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式-装饰者模式
- 设计模式--装饰者模式
- 【设计模式】装饰者模式
- 设计模式---装饰者模式
- 设计模式 装饰者模式
- hdu 5800
- Python脚本在crontab定时任务中无法运行,但是对应脚本手动执行成功
- HTTP长连接和短连接原理浅析
- Android Upload File to Server
- 集合总结[java]
- 设计模式-装饰者模式
- hdu 5794
- git 排错 fatal: 'git status --porcelain' failed in submodule abi/cpp
- java之HttpClient 使用[get/post]
- bootstra查阅参考文档
- Maven集成的Spring框架运行提示Failed to load ApplicationContext.xml
- SQL server安装跨语言失败咋整 求大神帮帮忙
- OpenGL(四)Shader错误 检测
- PS如何快速切图