JAVA后台开发_从入门到精通Java设计模式

3 策略模式

2020-01-10  本文已影响0人  笑Skr人啊

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
上一篇 下一篇

猜你喜欢

热点阅读