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

工厂模式 + 策略模式

作者: 上海马超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