文章目录
- 1. 业务逻辑层组件设计
- 1.1 业务逻辑组件的实现类
- 1.2 业务逻辑组件的配置
- 2. 业务逻辑层工作流设计
- 2.1 工作流
- 2.2 工作流参考模型
- 2.2.1 概述
- 2.2.1 工作流参考模型
- 3. 业务逻辑层实体设计
- 3.1 业务逻辑层实体概述
- 3.2 逻辑层实体的表示方法
- 3.2.1 XML表示业务层实体
- 3.2.2 通用DataSet表示业务层实体
- 3.2.3 有类型的DataSet表示业务层实体
- 4. 业务容器的框架
- 4.1 组成
- 1)Domain Model
- 2)Service
- 3)Control
- 4.2 互动关系
1. 业务逻辑层组件设计
- 业务逻辑组件分为接口和实现类两个部分。
1.1 业务逻辑组件的实现类
-
DAO
- Data Access Object
- 数据访问层(数据访问对象)
- 中间层的下一层,我们将在下一章详细讲解
-
Spring容器
- 概念:
- 是Spring框架的核心
- 用于管理和组织Java应用中的对象
- 功能:
-
控制对象的创建和生命周期
开发人员只需要配置对象的依赖关系和相关属性,而不需要手动创建对象。
-
依赖注入
将对象之间的依赖关系交给容器来管理,降低了对象之间的耦合度,提高了代码的灵活性和可维护性。
-
事务管理
-
- 概念:
教材原文:业务逻辑组件以DAO组件为基础,必须接收 Spring容器注入的 DAO 组件。
- 业务逻辑组件的实现类
- 将DAO组件接口实例作为属性(面向接口编程)
- 对于复杂的业务逻辑,需要调用多个DAO 接口,将具体实现委派给DAO 完成
1.2 业务逻辑组件的配置
- DAO 组件初始化:是由 Spring的依赖注入 (Dependency Injection) 机制完成的
教材此处写了spring框架业务逻辑组件的具体配置,虽然java对架构的支持很好,但作为架构师考试不应该局限于某一门语言,这里就不写了。
2. 业务逻辑层工作流设计
2.1 工作流
- 定义:业务流程的全部或部分自动化,在此过程中,文档、信息或任务按照一定的过程规则流转,实现组织成员间的协调工作以达到业务的整体目标
2.2 工作流参考模型
2.2.1 概述
- 概念:
- 是一种反映业务流程的计算机化的模型
- 是在计算机环境的支持下,为实现经营过程集成和经营过程自动化而构建的业务模型
- 可供工作流管理系统执行
- 目的:让文档、信息或任务可以在多个参与者之间依据预定规则自动传递,以达成预期的业务目标
- 用工作流的思想组织业务逻辑优点是
- 将应用逻辑与过程逻辑分离,通过修改过程模型改变系统功能
2.2.1 工作流参考模型
放在引用里,表示了解即可
说明:
- interface 1: 过程定义导入/导出接口
- interface 2: 客户端应用程序接口
- interface 3: 应用程序调用接口
允许工作流机直接激活一个应用工具,来执行一个活动
- interface 4: 工作流机协作接口
其目标是定义相关标准,以使不同开发商的工作流系统产品相互间能够进行无缝的任务项传递。
- interface 5: 管理和监视接口
提供的功能包括用户管理、角色管理、审查管理、资源控制制、过程管理和过程状态处理器等。
3. 业务逻辑层实体设计
3.1 业务逻辑层实体概述
- 业务逻辑层实体特点
- 业务逻辑层实体可以是可序列化的
- 业务逻辑层实体不直接访问数据库
- 业务逻辑层实体不启动任何类型的事务处理
事务处理由使用该实体的应用程序或业务过程来启动
3.2 逻辑层实体的表示方法
应用程序中表示业务逻辑层实体的方法:如XML、 通用DataSet、 有类型的 DataSet等
3.2.1 XML表示业务层实体
- 优点:
-
标准支持
-
灵活性
XML 能够表示信息的层次结构和集合
-
互操作性
-
3.2.2 通用DataSet表示业务层实体
- DataSet概念
- ADO.NET 中
- 一个用于在内存中存储和操作数据的对象
- 包含:多个数据表(DataTable),以及它们之间的关系(Data Relation)
- 作用:用于表示数据访问逻辑组件从数据库检索到的信息
示例1:用于Product业务逻辑层实体的通用 DataSet对象
- 该DataSet对象具有一个DataTable, 用于保存产品信息
- 该DataTable具有一个唯一约束(Unique Constraint)对象,用于将ProductID 列标记为主键。
示例2:用于Order业务逻辑层实体的通用 DataSet对象
- 此DataSet对象具有两个DataTable对象,分别保存订单信息和订单详细信息
- 每个DataTable具有一个对应的Unique Constraint对象,用于标识表中的主键
- 该DataSet还有一个 Relation对象,用于将订单详细信息与订单相关联
-
优点
- 灵活性
DataSet可以包含数据的集合,能够表示复杂的数据关系。
- 序列化
在层间传递时, DataSet本身支持序列化。
- 数据绑定
可以把 DataSet绑定到 ASP.NET应用程序和 Windows 窗体应用程序的任意用户界面控件
- 排序与过滤
使用 DataView对象排序和过滤DataSet。 应用程序可以为同一个DataSet 创建多个DataView对象,以便用不同方式查看数据。
- 与 XML 的互换性
可以用 XML格式读写 DataSet
- 开放式并发
开放式并发检查是一种用于检测并发冲突的机制
- 可扩展性
3.2.3 有类型的DataSet表示业务层实体
- 有类型的DataSet:
- 是包含具有严格类型的方法、属性、类型定义的类
- 用以公开DataSet中的数据和元数据
- 优点
- 代码易读
- 比通用 DataSet更方便
- 编译时可检查无效的表名称和列名称
DataSet只能在运行时检查
4. 业务容器的框架
- 优点:
- 降低业务层和相邻各层的耦合
4.1 组成
1)Domain Model
- 包含业务相关的属性
2)Service
- 概念:应用程序的不同功能单元
- 特点:服务之间以松耦合连接
即,互相连接的接口采用中立的方式定义(没有强制绑定到特定的实现上)
- 优点:
- 灵活性
- 当服务的内部结构和实现发生改变时,它能够继续存在
3)Control
- 概念:
- 服务控制器
- 实现不同服务之间的切换
- 优点:提高了服务实现的灵活性、重用性
4.2 互动关系
- Service 的运行会依赖于 Domain Model的状态; Service根据业务规则改变Domain Model 的状态
- Control根据 Domain Model 的状态和相关参数,决定Service之间的执行顺序及相互关系
其吸取了 Model—View—Control 的优点,通过将服务和服务控制隔离,使程序具备高度的可重用性和灵活性。