《系统架构设计师教程(第2版)》第13章-层次式架构设计理论与实践-03-中间层(业务层|逻辑层)架构设计

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.2 工作流参考模型

本小节解即可

在这里插入图片描述

说明:

  • 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 的优点,通过将服务和服务控制隔离,使程序具备高度的可重用性和灵活性。


在这里插入图片描述

  • 39
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值