例子: 出门,我们可以选择的交通工具如飞机,汽车,自行车等策略,略可以相互替换,最终的目地相同. 飞机 汽车 自行车等就是策略的抽象.
将策略的 定义
创建
使用
三部分解耦,使得每个部分可以独立,
定义: 定义策略的接口
创建: 创建具体的策略类 实现策略接口 一般使用Factory存储
使用: 根据运行时的状态来判断, 从工厂中获取具体的策略类进行调用
###具体的策略类在客户端使用时可以相互替换 ,使用策略的好处是可以去除if else等条件,避免硬编码
创建策略的过程中,如果对象是无状态的 可以创建成单例
如果对象是有状态的就需要每次创建新对象,此时如果使用if else 和new 的方式只不过只是将判断放到了创建的内层,我们可以使用反射+查表法来避免 反射+查表法 例子