装饰者模式
来源:互联网 发布:javascript 加载顺序 编辑:程序博客网 时间:2024/06/03 19:42
定义
动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案
示例说明
这是我github上的代码示代码
talk is cheap,show your code
所以读者直接参考我github上的代码,我这里虚构了一个常见游戏场景,不同角色有自己的能力值,里面的武器也都有相应的能力,当角色装备后会增加其能力值。
装饰者模式无论是被装饰与装饰组件,都需要继承自一个类,像代码中的Unit这个抽象类,
角色直接继承自Unit,这里添加了一个Arms抽象类也是继承自Unit,同时具体的武器继承自Arms,这里之所以多了一个Arms,是因为我想让这些武器必需描述一下自己,当然这个Arms类也可以去掉,让武器类直接继承自Unit。
运行DecoratorPatternTest测试方法就能看到比较直观的效果。
Java IO
装饰者模式最经典的使用就是java io api设计。
首先看一下其uml图
这里的InputStream就是所有的超类,下面所有的都可以说是装饰者
装饰者模式会引入大量的小类,不过可以跟Factory,Builder模式结合,这样使用起来不会那么眼花缭乱。
阅读全文
0 0
- 装饰者模式(Derector)
- 装饰者模式
- Decorator 装饰者模式
- 装饰者设计模式
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式(Decorator)
- 装饰者模式
- 装饰者模式
- 装饰者模式
- 装饰者模式 DecoratorPattern
- 设计模式 - 装饰者
- 装饰者模式
- 装饰者模式
- 装饰者模式 - 2
- 装饰者模式
- 装饰者模式
- InputStreamReader与OutputStreamWriter转换流
- jni环境与编译配置
- android6.0权限解析
- RXD and math
- ZCMU新人训练赛J
- 装饰者模式
- 打开idea目录结构
- Spring的静,动 态代理(jdk,cglib)
- Tomcat中配置虚拟目录,使得文件与Tomcat服务器分离
- 01 Gym
- 如何加载xml配置文件和proprieties
- springmvc+log4j操作日志记录,详细配置
- 循环嵌套和辅助语句
- 数据结构:树之定义与一些基本术语