软件开发中的三层架构模式
经济/产业
CO-OPERATIVE ECONOMY &SCIENCE
软件开发中的三层架构模式
□文/陈宝
提要软件开发过程中的分层模式
是最常见的一种架构模式,甚至说分层模软件开发采用式是很多架构模式的基础。
分层模式能够将各个功能分开,实现相对独立的开发模式。分层模式的关键点在于确定依赖,即通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。
关键词:分层模式;架构;三层中图分类号:F49
文献标识码:A
的客户/服务器结构的发展,代表了企业多层结构和三层结构的含义是一样的,只是细节有所不同。之所以会有双层、三层这些提法,是因为应用程序要解决三个层面的问题。
二、三层架构的划分
“客户端-服务器”架三层架构是一种
构,在此架构中,用户接口、商业逻辑、数据保存以及数据访问被设计为独立的模块。主要有三个层面:第一层,表现层,
第三需要什么数据以及数据存储在哪里。据库的程序,然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同因为各的程序员组用不同的语言来开发。个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。
有时候“三层”编起来比较麻烦,在要拖两个控件就可以了(AccessData -Source/SQLDatasource和GridView ),几分钟一个页面就出来了,而且还具备了修改中、删除、分页、排序等功能,而用三层架构就麻烦多了,先要写数据访问层的代码,接着写业务逻辑层的代码(要调用数据层的方法),最后才是表示层,也就是页面的设计,还要调用业务逻辑层的代码读取数据。(注意:表示层是绝对不会访问数据层的内容,只能通过业务层。业务层在这里是连接它们的桥梁,所以说业务层是最重要的一层)既然这样,为什么还要用三层呢?前面提到的一层架构的一个很大的问题就是前台和后台代码没有很好地分开,不利于分工,并且不利于日后的维如果是个人主页或者是一些一护和升级。
个人完成的小系统,用一层还是挺方便业级的应用,就非用三层甚至n 层不可了。一般三层就够了,再划分更多只会增加设计和编码的难度。
三、如何分层
怎么样分层符合三层架构原则呢?主要有以下三种分层方式:
1、数据层不包含任何代码,只有数据
级应用的未来,典型的有Web 下的应用。层包括数据库以及处理读写以及访问数
分层设计的概念一、
GUI 层;第二层,商业对象,商业逻辑层;ASP.NET 2.0里,访问数据和显示出来只
分层描述是这样一种架构设计过程:第三层,数据访问层。这些层可以单独开
这发,从最低级别的抽象开始,称为第1层,单独测试。通过将第J 层放置在第J-是系统的基础。
1层的上面逐步向上完成抽象阶梯,直到到达功能的最高级别,称为第N 层。因而分层模式可以定义为:将解决方案的组件每一层中的组件应保分割到不同的层中。
为什么要把程序代码分为三层?把用户接口层、商业逻辑层、数据访问层分离有许多的优点:
1、系统比较容易迁移。商业逻辑层与数据访问层是分离的,修改数据访问层不
持内聚性,并且应大致在同一抽象级别,会影响到商业逻辑层。系统如果从用
每一层都与它下面的各层保持松散耦合。SQL Server 存储数据迁移到用Oracle 存
架构这个词从它出现后,就有许许多多的程序员、架构师们激烈地讨论着它的发展,但是架构一词的出现,却是随着三目前应用层架构的出现才出现的。当然,
储数据,并不需要修改商业逻辑层组件和GUI 组件。
2、系统容易修改。假如在商业层有一个小小的修改,我们不需要在用户的机器
三层架构开发也正是业界最关注的主题。上重装整个系统,只需要更新商业逻辑组那么,这里我们来看看单层、双层、三层甚件就可以了。至多层架构到底是怎么一回事。单层结构是20世纪八十年代以来小型应用的结构,在那个结构化编程充斥的时代,还没有出现架构的概念,典型的是基于Dbase 、Foxbase 等小型数据库的应用。双层结构的同义词可以理解为传统的客户/服务器结构,尽管是目前占统治地位的结构,但其封装移植等方面的缺陷,已使它步入暮年,典型是基于Oracle 、Infomix 等大型数据库的C/S应用。三层结构是传统
3、应用程序开发人员可以并行,独立的开发单独的层。
应用程序的用户工作站包括提供图形用)的程序设计和具体的应用户界面(GUI 程序入口表格或交互式窗口。
事务逻辑处在局域网(LAN )服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定
在一个典型的三层架构应用程序中,的。如果是一些比较大的系统,特别是企
16
《合作经济与科技》2009年3月号下(总第365期)
经济/产业
CO-OPERATIVE ECONOMY &SCIENCE
提要国际收支理论主要产生于金
本位制度时期和第二次世界大战后的固定汇率制度时期。在汇率不变、汇率有限变动及汇率完全自由浮动的情况下,国际调节机制有相当大的差收支失衡的原因、
异,各种国际收支理论从不同的经济环前提出发,提出了国际收支失衡的原境、
因及调整方法,至今在多样化的国际社会都有较大的指导作用。
关键词:国际收支调节理论;理论评价中图分类号:F7
文献标识码:A
索,相继出现了弹性论、吸收论和货币论,事发展问题的学者,提出了结构论,进一推动了国际收支调节理论的发展。20世纪六十年代以来,国际收支危机开始频频爆发,货币危机理论迅速成为理论界关注的焦点之一,经济学家先后建立了三代国际收支危机模型(或货币危机模型)。20世纪八十年代初,托尼·克列克和瑟沃尔等一些来自发展中国家或发达国家中从
黄金流出
逆差
进口增加
出口减少
货币供应量下降
国际收支调节理论评述
□文/傅凯云
步丰富了国际收支的理论分析。下面对上述国际收支调节理论做简要的梳理,及其在我国的应用。
一、各理论内容简介
(一)价格-铸币流动机制理论。价格-铸币流动机制以金本位制下的黄金自由兑换和自由输入、输出为背景,以古典物价下降
出口增加
进口减少
顺差
国际收支调节理论所阐述的是国际收支不平衡的原因及调节方式,它是各国货币当局用以分析国际收支状况和调整国际收支行为的理论依据。早在15~16世纪,重商主义就着重研究贸易收支问题。最早对国际收支系统进行分析的理论·休谟的“价格-可以追溯到1752年大卫
铸币流动机制”理论。但国际贸易理论真正得到发展是在20世纪三十年代金本位制崩溃以后。在面对各国的国际收支状况一度陷入前所未有的混乱局面时,各国的经济学家才对国际收支进行新的理论探库,还有相关的存储过程。这种模式下,数据层看起来就变得很简单了。只包含所建立的数据库和一些存储过程(注意是存储过程)。其实这些存储过程的建立也是相当复杂的,因为它们可以完成除数据访问外的其他一些很强大的功能,如分页、实现搜索算法等。数据访问的逻辑就都放在业务层,当然业务层还包含其他一些逻辑代码。我们来看一个示例,假设数据库里有一个表BOOKS (书),建立一个存储过用来读取书的信息,这样程GetAllBooks ,
在业务层里编一个方法GetBookS ()和一个公用数据库访问类,GetBooks ()就通过数据库访问类打开连接,执行在存储过程,返回数据(返回类型可以是DataT -业务层单独编译成一个或者几个DLL 文件。接着就是表示层了,表示层通过调用GetBookS ()返回数据绑定在相关的控件里。业务层的方法都是在表示层调用。一般来说book.aspx 和book.aspx.cs 都是表
物价上升
货币供应
量上升
黄金流入
图1价格-铸币流动机制
示层的内容,所有前台的设计、相关控件、面向对象思想的完全体现。目前,我国家数据缓存都是属于表示层。
2、数据层还包含所有公共数据访问代码。这种模式和前一种差别不大,主要是把数据访问代码留到数据层。这样可以很方便地实现对多数据库的支持。业务逻辑层直接调用数据层的相关访问数据的其他和前一种没什么分别。
3、所有数据读取都放在数据层。这种()方法都模式下像前面所述的GetBooks
是放在数据层,在业务层再定义一个GetBookS ()方法以供表示层调用。这种模式下业务层不但不必了解底层是什么数据库,而且连数据库的结构都不必了解crosoft 的PetShop 4.0里就是这种模式。
四、结束语
本文三层架构主要向大家展示的实际上就是一种程序设计的思想,不管是三层架构还是设计模式,它们都是软件工程
参考文献:
[1]伽玛等著,李英军等译,设计模式———可复用面向对象软件的基础,第1版,机械工业出版社,2005.
[2](美)梅茨克尔(Metsker,S.J.),(美)过程、原理与模式(UML2.0版),人民邮电出版社,2007.
[3](美)沙洛韦(Shalloway,A.)等著,设计模式精解(英文版·第二版),机械工业出版社,2006.
软件业相对来说是很落后的,关键问题是软件企业的急功近利和程序员还停留在结构化思想上,不能说你在程序中用的是类就说你的思想是面向对象,也不是说你会使用java 编写程序,就说自己懂得面向对象,希望大家能一起进步,直正理解
(作者单位:唐山学院)
代码,完全不必了解底层是什么数据库。面向对象。
able ,DataSet ,DataReader 或者实体类)。了,这是最标准的三层架构了,在Mi -韦克(Wake,W.C.)著,软件工程设计导论:
《合作经济与科技》2009年3月号下(总第365期)
17