Decorator Pattern

1 设计原则

开放-关闭原则: 对扩展开放, 对修改关闭.

2 装饰者模式

动态地将 功能/责任 附加到对象上.

想要扩展功能, 装饰者提供有别于继承的另一种选择.

假设我们定义一个 形状接口Shape, Shape 有个 draw() 方法用于画指定的形状. 它有两个实现 Circle (实现画圆形)和 Rectangle(实现画矩形). 现在我们想在不改变原有代码的基础上, 让 draw() 增加一个颜色功能, 即画的形状是附带颜色的.[1]
用 装饰者模式 实现的类图如下:
decoratorPatter_1

3 使用案例

Java 的 输入/输出 流 使用了 装饰者模式.
比如输入流 InputStream 使用 装饰者模式的片段:
decoratorPattern_2

Reference

[1]. Decorator Pattern - turorials point
[2]. Head First 设计模式
[3]. Java I/O 学习系列二: 字节流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值