设计模式之策略模式
设计模式入门
1、设计模式是认名在面对同类型软件工程设计问题所总结的一些有用经验。
模式不是代码,而是某一类型问题的通用设计解决方案。也可以理解为解决问题的套路
2、学习设计模式最好的方式:在你的设计和以往的工程里寻找何处可以使用它们
3、设计模式的本质目的是使软件工程在维护性,扩展性,变化性,复杂度方面成O(N)
4、设计模式是基于面向对象为原则,设计模式是其具体的方法,工具
策略模式原理
1、前提: 超类里面挖了一个坑,每个子类都要来填,增加工作量,复杂度为O(N^2)
2、需要新的设计方式,应对项目的扩展性,降低复杂度:
1) 分析项目变化与不变化部分,提取变化部分,抽象为接口+实现;
2)将每一个变化的需求形成一个行为组
3)新增行为简单,行为类更好的复用,组合更方便。既有继承带来的复用好处
3、策略模式:分别封装变化部分为行为接口,实现算法族,超类里放行为接口对象,在子类里具体设定实现行为 接口的行为对象。
原则就是:分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者
策略模式示例演示
策略模式的注意点
1、分析项目中变化部分与不变部分
2、多用组合少用继承;用行为类组合,而不是行为的 继承。更有弹性