学习strategy模式

来源:互联网 发布:数据库增删改查语句 编辑:程序博客网 时间:2024/06/06 06:32

怎样处理新需求的变更?

原则:

1.针对接口编程,而不要针对实现编程。

2.优先使用对象组合,而不是使用继承。

3.封装变化概念,保证改变不引起重新设计。


为每种情况产生一个分支,代码冗余而且可读性差、分支蔓延、变化伸缩性差。

继承导致的缺陷:

1.特化技术产生太深的继承层次,导致程序难以理解,且弱内聚以及冗余。



对象聚集适应变化的过程

1.发现变化并封装,创建抽象类定义概念上如何完成计算,然后为具体情况特化一个版本。

2.组合取代继承,让处理变化的类聚集在主类上。


两者继承的区别:

如A是处理订单类,不同的产品有不同的计算折扣方法。

设计模式思想是设计处理接口B,从B派生处理类C,B内聚在A上。

传统方法从A派生D,让D处理不同的商品折扣方法。


原创粉丝点击