# 《大营销平台系统设计实现》 - 营销服务 第9节:模板模式串联抽奖规则

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

  • 本章难度:★★★☆☆
  • 本章重点:通过模板模式,整合责任链、规则树,定义出抽奖的标准过程。以及让子类做具体调用功能实现。
  • 课程视频https://t.zsxq.com/16ICK8eeS (opens new window)

版权说明:©本项目与星球签约合作,受《中华人民共和国著作权法实施条例》 (opens new window) 版权法保护,禁止任何理由和任何方式公开(public)源码、资料、视频等内容到Github、Gitee等,违反可追究进一步的法律行动。

# 一、本章诉求

通过模板模式,把上一节中规则树的结构设计,整合到抽奖过程中。这样整个抽奖策略过程会包括;责任链进行抽奖计算,基于抽奖计算结果对基础抽奖在进行规则树的过滤,最终返回抽奖结果。

注意:上一节是做了抽奖规则树的领域模型设计,基于这部分内容的实现本节需要把规则树和数据库关联起来

# 二、流程设计

业务项目从不是一锤子买卖,而是长周期的软件迭代。所以如果在代码中有非常多的只是配合现在功能实现的代码,那么后续的迭代会非常麻烦。所以我们在这样的功能实现时,是需要非常多的设计考虑,尽可能的拆解出稳定的结构,对于变化的内容从库表配置中读取。

  • 左侧的业务流程,可以通过抽象类定义的出调用顺序,右侧的具体操作可以放到实现了抽象类的子类来做具体实现。通过这样的方式,我们在后续看代码的时候,也能直接通过抽象类的模板结构直接知道这块的代码在做什么。而要看细节则进入到每个功能实现里去。
  • 重点:学习编程,要从编码对业务的实现中,提炼出模型结构。这些通用的模型结构可以解决很多同类的问题。