用户工具


程序处理流程

  • 红色:必要步骤
  • 绿色:健壮性步骤
  1. 获取参数
  2. 标准化参数
  3. 验证参数
  4. 流控
  5. 构建核心业务对象
  6. 填充核心业务对象需要的其他数据
  7. 处理核心业务对象
  8. 转换成其他核心业务对象(重复步骤5,6,7)
    1. 有些业务比较复杂或为了便于并发考虑,处理流程中可能会有多个核心业务对象
  9. 处理返回结果

模块划分逻辑

  • dal 包定位:读取存储
    • dao 包定位:存放DO
      • OrderDO.java
    • MysqlDAO.java
  • domain 包定位:业务逻辑实现
    • entity 包定位:业务对象的数据, 如果某些功能只依赖这些业务数据,则应该逻辑放在实体内部 (信息专家原则,面向对象)
      • RequestBO.java
    • service 包定位:业务的具体实现逻辑,Service之间可能会相互依赖,可以利用spring来处理
      • HandlerService1.java
      • HandlerService2.java
      • HandlerService3.java
  • infrastructure 包定位:基础功能的业务类,于业务逻辑无关
    • EmailService.java
  • util
    • Util.java
  • dal层:参数,返回值都不是业务对象
  • infrastructure层:参数,返回值都不是业务对象
  • util层:参数,返回值都不是业务对象
  • domain.service层:参数,返回值都是业务对象

业务对象数据要尽量严谨,可能为空的对象都是Optional类型,如下例子