笔记
项目开发常用
技术栈(后端):java,springboot,mybatis,mybatisPlus,Git,linux,redis,docker,mysql(差得远了,甚至很多还没完全掌握。。。)
1.DTO(Data Transfer Object):数据传输对象,DTO用于在不同层之间传输数据,它通常用于将业务逻辑层(Service层)的数据传输给表示层(Presentation层)或持久化层(Persistence层)。DTO对象通常包含业务领域的数据,但不包含业务逻辑。
2.DAO(Data Access Objects):数据访问对象,DAO用于封装数据访问逻辑,它负责与数据库进行交互,执行CRUD(创建、读取、更新、删除)操作。DAO对象通常封装了数据库访问的细节,使业务逻辑层能够更加简洁地操作数据。
3.VO(Value Object):值对象,VO也是用于数据传输的对象,类似于DTO,但VO通常更加专注于视图层的数据展示。VO对象通常包含了在前端页面展示所需的数据。屏蔽掉密码、创建时间、状态等敏感信息
4.BO(Business Object):业务对象层,BO用于封装业务逻辑,它通常包含了一系列的业务方法,用于实现业务规则和业务流程。BO对象通常会调用DAO对象来实现数据的持久化和访问。
5.DO(Domain Object): 领域对象,通常用于表示业务领域中的实体或业务对象。DO对象通常包含了业务逻辑和数据,是业务逻辑的实体表示。在某些情况下,DO对象可能与PO对象相似,但它们的用途和含义不同。DO对象通常用于表示业务领域中的复杂业务逻辑和业务实体。
6.PO(Persistant Object):持久对象,通常用于表示与数据库中的表(或文档)相映射的Java对象。PO对象的属性对应数据库表的字段,每个PO对象通常表示数据库中的一条记录。PO对象通常用于ORM(对象关系映射)框架中,如Hibernate、MyBatis等。
7.Entity: 指的是java实体,在软件开发中,实体通常用于表示现实世界中的具体对象或概念,如用户、订单、产品等。在JPA(Java Persistence API)或ORM(对象关系映射)框架中,实体通常指的是与数据库表相对应的Java对象,用于表示数据库中的一条记录。实体对象通常包含与数据库表字段对应的属性,以及对应的getter和setter方法。
7.Model(模型): 模型通常用于表示数据的抽象或规范,它可以是一种设计模式、数据结构或规则。在MVC(Model-View-Controller)架构中,模型用于表示应用程序的业务逻辑和数据。在这种情况下,Model对象通常用于封装业务逻辑、处理数据操作和传递数据给视图(View)层。Model对象可以是实体对象、DTO(数据传输对象)或其他业务对象。
8.Bean(Java Bean): Java Bean是一种符合特定规范的Java类,它通常包含私有的属性、公共的无参构造方法、getter和setter方法,并且可以序列化。Java Bean通常用于封装数据和行为,是一种可重用、可扩展的组件。Bean可以用于表示实体对象、业务对象、数据传输对象等,它们通常是轻量级的、不包含业务逻辑的数据对象。
接口定义规范
- 统一命名:接口的命名应该明确表明其用途,通常以动词开头,如
getUserInfo()
、createUser()
等。 - 分层设计:根据分层架构设计接口,不同层之间的接口应职责明确。例如,Service 层负责业务逻辑,Controller 层负责处理 HTTP 请求,Repository 层负责数据库访问。
- 使用DTO进行数据传输:在接口定义中,建议使用 DTO 作为参数和返回值,以减少层之间的耦合度。
- 接口文档:每个接口应有清晰的文档说明,包含功能描述、参数说明、返回值类型、异常处理等。
实体和文件命名规范
- 实体类命名:
-
- 实体类通常使用名词,并以
DO
、DTO
、VO
结尾,如UserDO
、UserDTO
、AddressVO
。 - 类名应清晰表明其含义,避免使用缩写,除非是非常通用的缩写。
- 实体类通常使用名词,并以
- 文件命名:
-
- 文件名应与类名一致,便于查找和管理。
- 对于接口文件,通常以
I
开头,表示接口,例如IUserService
。
- 包结构:
-
- 根据业务功能划分包结构,如
service
、repository
、controller
等。 - 同一类型的对象放在同一个包中,如
dto
包中包含所有 DTO 类,entity
包中包含所有 DO 类。
- 根据业务功能划分包结构,如
参考:
一遍文章搞清楚VO、DTO、DO、PO的概念、区别-腾讯云开发者社区-腾讯云 (tencent.com)