开发规范-三层架构代码分层及职责

1,116 阅读2分钟

无规矩不成方圆,无规范不能协作

分层参数传递及命名流程

  • dao层是数据层,直接进行数据库的读写操作,返回数据对象DO,DO与数据库表一一对应。
  • service层为业务层,用来实现业务逻辑。能调用dao层或者service层,返回数据对象DO或者业务对象BO,BO通常由DO转化、整合而来,可以包含多个DO的属性,也可以是只包含一个DO的部分属性。通常为了简便,如果无需转化,service也可以直接返回DO。外部调用(HTTP、RPC)方法也在这一层,对于外部调用来说,service一般会将外部调用返回的DTO转化为BO。
  • controller层为控制层,主要处理外部请求。调用service层,将service层返回的BO/DO转化为DTO/VO并封装成统一返回对象返回给调用方。如果返回数据用于前端模版渲染则返回VO,否则一般返回DTO。不论是DTO还是VO,一般都会对BO/DO中的数据进行一些转化和整合,比如将gender属性中的0转化“男”,1转化为“女”等。

数据流传架构

职责要明确

controller层职责

1.参数校验

2.调用service层接口实现业务逻辑

3.转换业务/数据对象

4.组装返回对象

5.异常处理

service层职责

1.接收Controller层数据

2.与DAO层交互,处理业务逻辑

3.生成DTO数据并返回Controller层 

dao层职责

1.数据库读写

2.向service层返回基本类型或DO

3.避免加入业务逻辑

参考阿里代码规范:阿里代码规范