盒子
盒子
文章目录
  1. 策略模式

Java中的设计模式

策略模式

将一些可公用的处理方法独立出来,作为处理策略供客户端调用

如不同存款方式有不同的利率算法,可将这些算法独立出来,作为一种利率处理策略

策略模式常分为3个模块:

  1. 策略接口
  2. 策略接口实现类
  3. 策略环境类,该类持有策略对象

策略环境类通过客户端的要求判断出该使用何种策略

以上结构也可使用工厂模式进行设计:

  1. 策略接口
  2. 策略接口实现类
  3. 在工厂类中选择策略,并返回策略

但工厂模式仍存在一个缺点就是每增加一个策略都需要在工厂中再添加一个判断以选择新的策略

为此可通过注解结合工厂模式来优化,以解除耦合:

  1. 创建一个注解,定义一个条件
  2. 为每一种策略添加该注解,并为条件赋值,只有满足该条件才使用该策略
  3. 在工厂中加载策略包中的所有策略类,并获取它们的注解,根据注解条件判断该使用何种策略

这样设计的话就可以不需要对工厂进行修改,只需设计策略

参考:

设计模式学习之策略模式

支持一下
扫一扫,支持Grooter
  • 微信扫一扫
  • 支付宝扫一扫