跳至主要內容

Day03

许哲远大约 40 分钟开发笔记学习记录

day03

任务

  • [x] 模板模式处理抽奖流程

学习过程

  1. 因为之前没学过设计模式,先学一学模板模式,用到一种学一种,哈哈哈

  2. 先看一下整个抽奖流程

    抽奖过程
    抽奖过程
  3. 了解了抽奖流程之后就开始写代码

    1. 先写对应的 dao 层

      1. 要查策略吧?写个策略的 Mapper
      2. 要查策略详情吧?写个策略详情的 Mapper
      3. 要查奖品吧?要减奖品库存吧?要查没库存的奖品吧?写个奖品的 Mapper
    2. 然后实现 repository 层

      这里主要是调 Mapper 将结果进行聚合封装

    3. 使用模板模式设计抽奖过程代码

      1. 顶层接口规定抽奖的入参出参
      2. 加一层 Config 把抽奖策略进行统一录入
      3. 配置完成后需要调用基础服务比如 repository 层,所以加一层基础支持
      4. 然后来一个抽象类,在这里实现接口的抽奖,抽奖接口里面写抽奖的流程,然后具体的方法交给子类实现
      5. 实现抽象类
    4. 测试

遇到的问题

相对于前两天,今天的内容算容易的,因为只有一个模板设计模式没学过,只要理清了思路、理清代码执行流程,今天应该算容易的

  1. 空指针 bug

    今天太晚了,先注销那个判断吧,待会儿搞完又不想睡觉了,后面也会解决这个 bug 吧,先睡觉咯 :TODO

总结

今天主要就两件事,先学习模板设计模式,然后使用模板设计模式来组织抽奖流程,主要就是通过一系列的封装,把公用的代码提取出来,比如配置、执行流程、以及公用仓储服务,然后把接口留给实现类而达到同一套代码,不同的处理方法

收获:

  1. 今天对于前两天来说,对于包的组织架构以及 DDD 有了更深的理解,很明显的感觉到知道代码该写在哪了,找包都比前两天快
  2. 学习了模板模式,知道了模板模式的代码应该怎样组织,突然感觉那种设计模式大牛真的能把封装继承多态玩出花,有了设计模式,代码的扩展性提高了很多