Home Java实体类模型
Post
Cancel

Java实体类模型

一、核心概念解析

  • POJO:即普通Java对象,没有业务逻辑,包含DO、DTO、BO、VO和PO等,遵守简单对象概念,比JavaBean更纯净。有private参数及对应的get和set方法,不继承、不实现接口且未被框架侵入。
  • VO:视图模型,用于展示层,将指定页面或组件的数据封装起来,实现后台向前端传输数据,在业务不复杂系统中可直接用DTO替代。
  • DTO:数据传输对象,在后端是Java对象,前端是js对象(类似json)。用于前端向后端传输数据,在满足能完整表达业务模块输出的情况下,也可用于服务间调用,它没有行为,仅存储和提供数据查询。
  • Entity/PO:持久化对象,等同于Entity,对应数据库表中的记录,属性与表字段一一对应,数量与数据库表数量相关,除get、set方法外一般无其他方法。
  • DO:领域对象,从现实世界抽象出的业务实体,用于业务逻辑层接收数据库数据,是Entity的一种,在阿里巴巴开发手册和DDD领域驱动设计中有不同定义。
  • BO:业务对象,用于封装业务逻辑,可包含多个其他对象,位于中间层或业务逻辑层,支持序列化和反序列化,部分实体属于BO。

二、相关概念补充

  • Model:在三层架构中用于封装各层传递数据;在MVC模式中负责业务流程、状态处理和业务规则制定,是MVC的核心。
  • View:在MVC模式中用于解析Model数据并展示,其模型决定所需对接的Model。
  • DAO:数据访问对象,是与数据库交互的接口,位于业务逻辑与数据库资源之间,在业务逻辑层访问数据库时使用。

三、放置目录规范

  • PO通常存放在bean、entity、model目录;
  • DAO在dao、mapper目录;
  • BO在service、manager、business目录。

四、调用关系

前端通过DTO与controller交互,controller将DTO传递给service,service使用DO或实体与mapper交互,mapper操作数据库,数据再沿原路返回前端。

This post is licensed under CC BY 4.0 by the author.