设计模式之装饰模式(Decorator Pattern)
代码下载
1.概念
动态地给一个对象添加一些额外的职责。就扩展功能而言,它比生成子类方式更为灵活。
概念比较抽象,举个例子:
实现一个算法
1).定义一个实体Model数据结构,里面两个属性D1,D2。
2).定义一个抽象类AbstractSum,算法接口Sum。
3).Sum1算法1,求和D1+D2,算法2,求积D1*D2。
好现在算法框架已经有了。
下面该利用装饰模式了。实现算法之前要做一个数据验证。
对算法1(Sum1)D1>0时才能求和。
对算法2(Sum2)D2>0时才能求积。
具体做法是:
1).定义一个抽象类AbstractCheckDataSumWrapper继承抽象类AbstractSum。
2).实现AbstractCheckDataSumWrapper类CheckDataSumWrapper1,CheckDataSumWrapper2
分别做数据验证,后计算。
其实就是把原有算法包装一下,扩展一些额外功能。
2.模型
代码下载