业务层架构模式

一:业务层架构模式概述

在三层架构中,业务层负责所有业务相关的工作,包括根据输入数据或已有数据进行计算,对从表示层输入的数据进行验证,以及根据从表示层接收的命令来确定应该调用哪些数据访问逻辑。对于应用系统来说,业务层主要维护业务逻辑,是系统的核心部分。因此,在应用系统开发时,业务层的开发是最为关键的。

业务层的架构模式有多种,最著名的就是以下两种 :

事务脚本模型(面向过程的设计)

领域模型(面向对象的设计)

 

二:事务脚本模型

事务脚本(Transaction Script)架构模型是按照传统的过程化方式组织业务逻辑,它将业务层的业务逻辑组织为一系列的事务脚本,每个事务脚本是一个访问数据库并执行计算的方法,每个事务脚本处理来自于表示层的单个请求。事务脚本通常被分组在一起,形成一个事务脚本类,以实现一到多个用例的业务逻辑。

 

在使用事务脚本模式组织业务逻辑时,业务层结构由如下三个部分组成:

 

事务脚本:事务脚本类由一些方法组成,一个方法对应一个事务脚本,也就是对应一个用户请求。

 

DTO:事务脚本类操作DTO(Data Transfer Object,数据传输对象)。DTO只有成员变量,没有方法。它包含来自数据库的数据,并由事务脚本返回给表示层。//实体类

 
DAO:事务脚本使用DAO访问数据库 

 

为了更清晰地理解事务脚本架构模式,我们以开发一个简单的员工管理系统为示例,今天的作业就是这个了!再增加一个根据条件查询信息的

开发基于事务脚本模式的业务逻辑的过程由四个步骤组成:

  1)识别事务脚本;   识别事务脚本可以通过分析用例或者分析用户界面原型,其中分析用户界面原型最为直接简单。

  2)实现事务脚本;   现在我们已经识别了事务脚本,并确定了它们的参数和返回值类型。那么,整个过程的下一步就是实现事务脚本接口。 

  3)实现DTO;   DTO在事务脚本和DAO之间,以及事务脚本和表示层之间传递。DAO使用DTO来返回需要从数据库获取的数据给事务脚本,事务脚本使用DTO传递数据到DAO,以更新数据库。事务脚本也会将DTO返回给表示层。

     

DTO只保存数据,只有成员变量和setter/getter方法。DTO及其成员变量可以组合如下三种识别技术来判断:

为每个数据库实体表定义一个DTO,DTO的成员变量与表的列对应。

为每个用户界面定义个DTO,DTO的成员变量包含显示在屏幕上的数据。

运用简单的OO分析和设计技术,识别类及其成员变量。 

  4)实现DAO。   每个DAO由一个接口和一个实现类组成。在上章我们已经学习过DAO的实现方法。这里不在详细讲述,只列出简单员工管理系统的DAO接口及实现类代码 

事务脚本最大的优势在于使用简单。因为采用过程化设计,一个用户请求对应一个事务脚本,使用者无须拥有OO设计技能,不用识别类以及为类分配职责,任何初学者都可以很快掌握事务脚本模式来组织业务逻辑的方法。

 

缺点:因为事务脚本采用的是过程化设计的方法,所有业务逻辑都集中在事务脚本里面。很显然,将业务逻辑都集中在事务脚本里,违反了面向对象设计中单一职责等设计原则。这使得代码难以维护和理解,尤其是业务逻辑复杂的时候。

 

事务脚本模式虽然有缺点,但是至今仍然有很多开发团队采用该模式来组织业务层的业务逻辑。当业务逻辑相对比较简单时,采用事务脚本模式可以大大加快开发进度。同时,如果开发团队缺乏面向对象设计技能,采用事务脚本模式也是理智的选择。 

 

 

 

 

 

 

 

 

 

 

 

 

时间: 2024-07-30 01:55:37

业务层架构模式的相关文章

走向ASP.NET架构设计第五章:业务层模式,原则,实践(前篇)

在上一章中,我们讲述了有关业务层分层的一些知识,下面我们就来看看,在具体的业务层的设计中,我们可以采用哪些模式可以将业务层设计的更加的灵活! 架构模式 首先我们就来看看,如何更加有效的组织业务规则. Specification Pattern(需求规格模式) 这个模式的使用方法就是:把业务规则放在业务类的外面,并且封装成为一个个返回boolean值的算法.这些一个个的业务规则的算法不仅仅便于管理和维护,并且还可以被重用,而且很方便的组织成为复杂的业务逻辑. 下面我们就来看一个以在线租DVD的公司

一起谈.NET技术,走向ASP.NET架构设计——第五章:业务层模式,原则,实践(前篇)

在上一章中,我们讲述了有关业务层分层的一些知识,下面我们就来看看,在具体的业务层的设计中,我们可以采用哪些模式可以将业务层设计的更加的灵活! 架构模式 首先我们就来看看,如何更加有效的组织业务规则. Specification Pattern(需求规格模式) 这个模式的使用方法就是:把业务规则放在业务类的外面,并且封装成为一个个返回boolean值的算法.这些一个个的业务规则的算法不仅仅便于管理和维护,并且还可以被重用,而且很方便的组织成为复杂的业务逻辑. 下面我们就来看一个以在线租DVD的公司

走向ASP.NET架构设计第四章:业务层分层架构(前篇)

在讨论完四种模式之后,我将会和大家一起来看看DDD的一些知识.每种模式的讲解,我都会用实例的形式给出完整的代码,也希望大家多琢磨! 不是所有的应用程序都是一样的,也不是所有的系统都需要用复杂的架构来组织业务逻辑.作为开发人员,我们必须清楚每一种业务逻辑组织的模式,这样我们才能在需要的时候做出合适的选择. Transaction Script 这种组织业务逻辑的模式是最简单,也是最容易理解的.Transaction Script模式就是用面向过程的方式来组织业务逻辑的.通常情况下,系统的一个流程就

一起谈.NET技术,走向ASP.NET架构设计——第四章:业务层分层架构(后篇)

今天的内容比较简单,也是本章的一个收尾! Anemic Domain Model 这种模式和之前讲述的Domain Model有很多的相似的地方.在之前的Domain Model中,每个业务类都包含了自己的业务逻辑和数据,以及对象之前的关系:但是在Anemic Domain Model,每个业务类仅仅只是包含了一些保存业务数据的属性,把相应的业务规则从原本的业务类中移到了另外的一个专门的业务规则类(Specification Pattern,我们后面的章节讲述),同时把相应的业务方法移到了ser

一起谈.NET技术,走向ASP.NET架构设计——第四章—业务层分层架构(中篇)

在上一篇文章中,我们讨论了两种组织业务逻辑的模式:Transaction Script和Active Record.在本篇中开始讲述Domain Model和Anemic Model. Domain Model 在开发过程中,我们常常用Domain Model来对目标的业务领域建模.通过Domain Model建模的业务类代表了目标领域中的一些概念.而且,我们会看到通过Domain Model建模的一些对象模拟了业务活动中的数据,有的对象还反映了一些业务规则. 我们就来看看电子商务系统的开发,在

走向ASP.NET架构设计第四章:业务层分层架构(后篇)

今天的内容比较简单,也是本章的一个收尾! Anemic Domain Model 这种模式和之前讲述的Domain Model有很多的相似的地方.在之前的Domain Model中,每个业务类都包含了自己的业务逻辑和数据,以及对象之前的关系:但是在Anemic Domain Model,每个业务类仅仅只是包含了一些保存业务数据的属性,把相应的业务规则从原本的业务类中移到了另外的一个专门的业务规则类(Specification Pattern,我们后面的章节讲述),同时把相应的业务方法移到了ser

.NET企业级架构解决方案:业务层

引言 Martin Fowler说过:"任何人都可以写出计算机才能理解的代码,只有写出人能理解的代码的程序员才是好程序员." 每一个复杂的软件都应该按层来组织.每一层代表系统的一个逻辑部件.尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层. 业务层是任何分层系统的神经中心,包含了大部分的核心逻辑.因为这个原因,它也经常被叫做:业务逻辑层BLL. 正文 1.业务逻辑层是什么 抽象的讲,业务逻辑层是系统的一部分,用来处理

.NET企业级架构解决“.NET研究”方案:业务层

引言 Martin Fowler说过:"任何人都可以写出计算机才能理解的代码,只有写出人能理解的代码的程序员才是好程序员." 每一个复杂的软件都应该按层来组织.每一层代表系统的一个逻辑部件.尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层. 业务层是任何分层系统的神经中心,包含了大部分的核心逻辑.因为这个原因,它也经常被叫做:业务逻辑层BLL. 正文 1.业务逻辑层是什么 抽象的讲,业务逻辑层是系统的一部分,用来处理

一起谈.NET技术,.NET企业级架构解决方案:业务层

引言 Martin Fowler说过:"任何人都可以写出计算机才能理解的代码,只有写出人能理解的代码的程序员才是好程序员." 每一个复杂的软件都应该按层来组织.每一层代表系统的一个逻辑部件.尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层. 业务层是任何分层系统的神经中心,包含了大部分的核心逻辑.因为这个原因,它也经常被叫做:业务逻辑层BLL. 正文 1.业务逻辑层是什么 抽象的讲,业务逻辑层是系统的一部分,用来处理