策略模式定义
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计原则
1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合在一起。
2、针对接口编程,而不是针对实现编程。
3、多用组合,少用继承。
关于1,之所以要将应用中变化的和不变的独立出来,是因为如果混合在一起,会导致每次需求变化,都需要针对整个应用修改代码,维护成本比较高。独立出来后,只需要修改变化的部分,比较容易维护。
关于2,针对接口编程,具有松耦合的优势,每次修改都不需要修改接口操作部分,比较灵活。
关于3,多组合可以在运行中动态变动,代码灵活性和可维护性比较高。