工厂模式 + 策略模式

  • 扣款策略接口 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,剩下的实例化交给工厂类来做
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • 1 场景问题# 1.1 导出数据的应用框架## 考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据...
    七寸知架构阅读 6,778评论 6 75
  • 1 场景问题# 1.1 选择组装电脑的配件## 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选...
    七寸知架构阅读 4,406评论 6 67
  • 我不知道你是否听过“鱿鱼之乡”这个称呼。 摊开舟山市的地图,在本岛的下方位置,有一个狭长的小岛, 它的边岸曲折,颇...
    问见海小鲜阅读 255评论 0 0
  • 大千世界, 我无处容身。 天地虽宽, 我的心却没有一席之地。 走进高高的楼房, 跨进华丽的厅堂。 我的心却似漂浮一...
    卓贵玲阅读 325评论 0 2