设计模式的优点:降低程序员设计复杂度。
面向对象中继承存在的问题:对类的局部改动,尤其超类的局部改动,子类有继承关系时,会影响其他子类的部分。这时出现溢出效应。策略模式可以解决这易问题。
策略模式原理:分别封装行为接口,实现算法族,超类里放行为接口对象,在子类里具体设定行为对象。
设计原则:分离变化部分,封装接口,基于接口编程各种功能。此模式让行为算法的变化独立于算法的使用者。
通俗理解,在构造函数中设置属性:
构造函数输入属性参数,属性参数为行为接口实现对象。例如: IO流实现类BufferedInputStream 与父类InputStream的关系,BufferedInputStream在创建时可以传入FileInputStream本地文件字节流,也可以传入ByteArrayInputStream网络传输字节流。根据实际需要,传入属性的设计模式,就是策略模式。)
策略模式使用注意点:
1、分析变化部分与不变化部分。
2、多组合少用继承;用行为组合,而不是行为继承。更有弹性
3、设计模式没有相应的库,有些库或者框架是直接使用设计模式设计的,要多做分析。