设计模式之装饰模式
2017年3月9日 00:00
概述
装饰模式(Decorator)也叫包装器模式(Wrapper),是指动态地给一个对象添加一些额外的职责,就增加功能来说装饰模式比生成子类更为灵活。它通过创建一个包装对象,也就是装饰来包裹真实的对象
情景举例
我们先来分析这样一个画图形的需求:
- 它能绘制各种背景,如红色、蓝色、绿色
- 它能绘制形状,如三角形,正方形,圆形
- 它能给形状加上阴影
就先列这三个简单的需求吧,下面让我们比较下各种实现的优缺点
丑陋的实现
来看看我们用继承是如何实现的,首先,抽象出一个Shape接口我想大家都不会有意见的是不是?
1 | /** |
然后我们定义各种情况下的子类,结构如下,看到这么多的子类,是不是有点要爆炸的感觉?真是想想都可怕
剩余内容已隐藏
查看完整文章以阅读更多