关于项目结构划分

关于项目结构划分的思考和总结

项目分层

image.png

  • Controller
  1. 参数常规合法性校验
  2. 每个Controller函数对应一个Service函数
  • Service 业务层,复用性低
  1. 参数业务合法性校验,使用 throw 处理异常
  • Manager 可复用逻辑层
  1. 主要是Cache、MQ、复合Manager、RCP、HTTP等服务
  • Mapper 数据库访问层

1. 只允许自己的Service访问,其他Service访问仅能通过其Service

领域模型

DO Data Object

与数据库表结构对应,作为 Mapper 的返回值

DTO Data Transfer Object

数据传输对象,作为 Service 或 Manager 的返回值

BO Business Object

业务对象,作为 Service 的返回值,封装了业务逻辑的对象

AO Application Object

应用对象,

VO View Object

显示层对象,通常为 Web 层返回内容或模版渲染传输对象

Query

数据查询对象,上层封装的查询对象

简化后的方案

image.png

  • Mapper 层返回的 DO 仅允许传入到 Service 或 Manager
  • Service 或 Manager 返回的 VO 仅允许传入到 Controller 或 TService

总结

1
2
C -Query—> S —DTO—> M
C <—VO- S <—DO- M

链接

原文地址

分享到