1 简介
本质
根据指定条件调用接口的相应实现类中的方法
定义
策略模式定义算法家族,分别封装,算法之间可相互替换
意义
此模式让算法的变化对使用算法的客户无影响
实现
定义一个接口,为多个实现类提供公用方法,不同实现类中,实现不同的逻辑
优点
策略模式提供相同行为的不同实现
策略模式支持开闭原则
策略模式把算法的使用放到环境类,算法的实现移到具体策略类,实现了二者的分离。
缺点
调用者必须理解所有策略算法
策略类较多
2 UML图介绍
2.1 实现(implements)
实现
实现用 空三角+虚线 表示
当一个类实现一个接口时,用实现
大雁实现飞翔接口
2.2 聚合
聚合
聚合表示弱的拥有关系
体现 A对象包含B对象,但B对象不是A对象的一部分
大雁聚合成雁群
3 策略模式UML图
策略模式
4 代码
git
https://github.com/3748/java.git
package
com.java.design.pattern.behavior.strategy
5 策略模式与简单工厂结合使用
git
https://github.com/3748/java.git
package
com.java.design.pattern.behavior.strategy.simple.factory
缺点
不符合开闭原则(因为 简单工厂不符合开闭原则)
6 使用反射解决不符合开闭原则问题
git
https://github.com/3748/java.git
package
com.java.design.pattern.behavior.strategy.simple.factory.optimize
网友评论