美文网首页
工厂模式 + 策略模式

工厂模式 + 策略模式

作者: 上海马超23 | 来源:发表于2017-06-28 22:20 被阅读0次
  • 扣款策略接口 Deduction
    exec 执行本策略

  • 扣款策略1 implements 扣款策略接口
    实现exec策略逻辑

  • 扣款策略2 implements 扣款策略接口

  • 扣款策略执行器
    构造函数传入Deduction接口
    exec:调用 deduction.exec

  • 策略枚举:外部传枚举值,找到对应的策略实现子类

  • 工厂类 StrategyFactory
    getDeduction:接受枚举参数,通过枚举里的子类名属性,反射实例化子类

deduction = StrategyFactory.getDeduction(enum); // 通过枚举类获取对应的策略子类
context = new Context(deduction);
context.exec(); // 执行策略 

总结

策略模式封装了容易变化的逻辑部分,自由切换应对不同场景,而且扩展性好。

工厂模式

  • 避免策略实现子类对外直接暴露,因为外部调用策略是直接依赖实现子类传递给context的
  • 外部通过传递一个类似枚举,作为映射到策略子类的key,剩下的实例化交给工厂类来做

相关文章

网友评论

      本文标题:工厂模式 + 策略模式

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