Java领域模型
Bean
java可重用组件,有显示逻辑的POJO,目的是把程序,业务逻辑和显示逻辑分开吗,降低开发的复杂程度和维护成本。
规范
这个类必须有一个公共的缺省构造函数
这个类的属性用 getter 和 setter 访问
这个类可被序列化
EJB
即EnterpriseBean,也就是Enterprise JavaBean(EJB)。
ejb是JavaEE的一部分,定义了一个用于开发基于组件的企业多重应用程序标准。它被称为Java企业Bean,是java的核心代码,分别是回话Bean(Session Bean)、实体Bean(Entity Bean)、和消息驱动Bean(MessageDriven Bean)。
POJO(plain ordinary java object,普通无规则Java对象)类型
POJO是基本的数据表示对象规范。
具有getter、setter方法,没有逻辑类代码。
POJO又分为PO、VO、TO、BO、DTO
比如user是一张用户表,可以用PO后缀的UserPO表示这是一个ORM映射实体类。
DO(Domain Object)
领域化的PO对象。
比如User的密码不能返回前端,所以为了符合业务需求建立DO对象。
VO(View Object)
视图(页面)对象,代表前端 页面或组件的字段。
和PO一样也是仅仅包含数据而已,但应是抽象出的业务对象,可以和表对应,也可以不是
DTO(Data Transfer Object)
数据传输对象,现在用于视图层与服务层之间的数据传递。例如前端请求后端实现用户信息验证。
这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载。
比如返回信息除包含数据外还有状态码、请求结果。
BO
业务对象,包含了业务逻辑,属性可以是一个Java对象。
比如一个简历中,有教育经历、工作经历、社会关系等等。教育经历、工作经历、社会关系又分别对应一个实体。
PO
持久化(表)对象,也就是Entity类型的实体。
表示现实世界的事物。
是ORM(Objevt Relational Mapping)框架中Entity,PO属性和数据库中表的字段形成一一对应关系
VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的
Entity类型
表映射的实体类,用于ORM系统中关系映射的实体类,也就是对应着数据库一张表(类型和数学名称一一对应),应用场景有JPA、Mybatis。
模型
用户发出请求,表单的数据层被匹配为 VO
展示层把 VO 转换为服务层对应方法锁要求的 DTO,传输给服务层
服务层首先根据 DTO 的数据构造一个 DO,调用 DO 的业务方法完成具体业务
服务层把 DO 转换为持久层对应的 PO,调用持久层持久化方法,把 PO 传递给它完成持久化操作