基础框架搭建: 项目代码结构与数据模型转换

152 阅读1分钟

项目代码组织结构

image.png

image.png

image.png

关注点分离

数据模型转换

  • 在应用程序中,我们经常需要在不同层次间传递数据,比如从DAO层传到业务逻辑层,再到表示层。在这些不同层次间,数据的形态可能会有所不同,这就是数据模型转换的由来
  • 需要进行数据模型转换最主要的原因是关注点分离

阿里分层领域模型规约参考

  • DO(Data Object):此对象与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
  • BO(Business Object):可以由 Service 层输出的封装业务逻辑的对象。
  • Query:数据查询对象,各层接收上层的查询请求。注意超过2个参数的查询封装,禁止使用Map类来传输
  • VO(View Object):显示层对象,通常是 Web 向模版渲染引擎层传输的对象。

简单的三层数据模型

  • DO:对应数据库表结构
  • BO:对应 Manager 层使用
  • VO:对应 Controller 层使用

如何快速定义数据模型

Lombok

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.30</version>
		<scope>provided</scope>
	</dependency>
</dependencies>

如何进行数据模型转换

Google Guava

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.3-jre</version>
  <!-- or, for Android: -->
  <version>32.1.3-android</version>
</dependency>