sponsored links

轻量级Java EE企业应用实战(第4版)学习笔记

  • 参考资料
    • Java EE 应用的分层模型
      • Domain Object领域对象层
      • DAOData Access Object数据访问对象层
      • 业务逻辑层
      • 控制器层
      • 表现层
      • Java EE应用的架构
    • Java EE应用的组件
      • 表现层组件
      • 控制器组件
      • 业务逻辑组件
      • DAO组件
      • 领域对象组件

参考资料

轻量级Java EE企业应用实战(第4版)

Java EE 应用的分层模型

Domain Object(领域对象)层:

此层由POJO(Plain Old Java Object,普通的、传统的Java对象)组成,这些对象是该系统的Domain Object,往往包含了各自所需要实现的业务逻辑方法。
领域模型中的实体类可细分为4种类型:
VO(View Object)视图层:

视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

DTO(Data Transfer Object)数据传输对象层:

数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

DO(Domain Object)业务实体层:

领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

PO(Persistent Object)数据表对应层:

持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

DAO(Data Access Object,数据访问对象)层:

此层由一系列的DAO组件组成,这些DAO实现了对数据库的创建、查询、更新和删除(CRUD)等原子操作。

业务逻辑层:

此层由一系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。这些业务逻辑方法可能仅仅用于暴露Domain Object对象所实现的业务逻辑方法,也可能是依赖DAO组件实现的业务逻辑方法。

控制器层:

此层由一系列的控制器组成,这些控制器用于拦截用户的请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。

表现层:

此层由一系列的JSP页面、Velocity页面、PDF文档视图组件组成,负责收集用户请求,并现实处理结果。

Java EE应用的架构:

轻量级Java EE企业应用实战(第4版)学习笔记

Java EE应用的组件

表现层组件:

主要负责收集用户输入数据,或者向客户显示系统状态。最常用的表现层技术是JSP,但JSP并不是唯一的表现层技术。表现层还可由Velocity、FreeMarker和Tapestry等技术完成,或者使用普通的应用程序充当表现层组件,甚至可以是小型智能设备。

控制器组件:

对于Java EE的MVC框架而言,框架提供一个前端核心控制器,而核心控制器负责拦截用户请求,并将请求转发给用户实现的控制器组件。而这些用户实现的控制器则负责处理调用业务逻辑方法,处理用户请求。

业务逻辑组件:

是系统的核心组件,实现系统的业务逻辑。通常,一个业务逻辑方法对应一次用户操作。一个业务逻辑方法应该是一个整体的,因此要求对业务逻辑方法增加事务性。业务逻辑方法仅仅负责实现业务逻辑,不应该进行数据库访问。因此,业务逻辑组件中不应该出现原始的Hibernate、JDBC等API。

DAO组件:

Data Access Object,也被称为数据访问对象。这个类型的对象比较缺乏变化,每个DAO组件都要提供Domain Object对象基本的创建、查询、更新和删除等操作,这些操作对应于数据表的CRUD(创建、查询、更新和删除)等原子操作。当然,如果采用不同的持久层访问技术,DAO组件的实现会完全不同。为了业务逻辑组件的实现与DAO组件的实现分离,程序应该为每个DAO组件都提供接口,业务逻辑组件面向DAO接口编程,从而提供更好的解耦。

领域对象组件:

领域对象(Domain Object)抽象了系统的对象模型。通常而言,这些领域对象的状态都必须保存在数据库里。因此,每个领域对象通常对应一个或多个数据表,领域对象通常需要提供对数据记录访问方式。

Tags: