3 策略模式

作者: 笑Skr人啊 | 来源:发表于2020-01-10 13:57 被阅读0次

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

相关文章

网友评论

    本文标题:3 策略模式

    本文链接:https://www.haomeiwen.com/subject/fqwpactx.html