伪DDD领域驱动最佳实践案例

433 阅读1分钟

项目结构分层

  • controller
  • service (包含domain以及mapper的注入类)
  • domain
    • entity
      • model (充血模型,用户强相关业务[业务行为 | 业务属性相关], 不要存在任何dao的注入)
        • UserModel.java
        • OrderModel.java
        • GoodsModel.java
      • dto (请勿添加逻辑在此,dto只作为数据传输的结构)
        • UserDto.java
        • OrderDto.java
        • GoodsDto.java
    • ShoppingCartDomain.java (商品领域 -- 购物车子领域, model作为入参,通过service调用mapper返回model,解决复杂逻辑)
    • SubmitOrderDomain.java (订单领域 -- 下单子领域)
    • ...
  • mapper (对应表的mapper, 例如使用mybatis plus生成的mapper)
    • UserMapper.java
    • GoodsMapper.java
    • OrderMapper.java

整个结构的调用流程

controller -> service -> domain(如果业务复杂,service则会调用该层,否则service直接调用mapper) -> mapper

项目代码demo后续补充

代码会补充在 github.com/specialbisc…, 感兴趣的可以关注下