三层架构(一)——理论点滴

大家一看到这张图,就像到了三层架构,为什么出现三层架构呢?可能他有他的道理,即它要完成的目的:满足"高内聚,低耦合",达到复用,易修改,易维护等.下边我们看一看它的相关理论知识.

三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:表现层(UI),业务逻辑层(BLL),数据访问层(DAL)。其目的即为了满足“高内聚,低耦合”的思想。

一,三层简介:

表现层(UI):通俗讲就是给用户的界面,即用户在使用一个系统的时候他的所见所得。

业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添,删除,修改,查找等。

下边两张图可以给我们很好的启示:

二,各层的作用:

1,数据访问层:主要是针对原始数据的操作层,而不是指原始数据。具体为业务逻辑层或表示层提供数据服务。

2,业务逻辑层:主要是针对问题的操作,也可以理解为针对数据层的操作,对数据业务逻辑的处理。

3,表示层,主要表示WEB方式,也可以表示成WinForm方式,Web方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善的提供服务。

4,各层之间的数据走向:

5,三层之间与业务实体之间的关系:

三,使用三层的优缺点:

优点:

1,开发人员可以只关注结构中的其中某一层;

2,可以很容易的用新的实现来替换原有层次的实现;

3,可以降低层与层之间的依赖;

4,有利于标准化;

5,利于各层逻辑的复用;

6,结构更加的明确;

7,在后期维护的时候,极大的降低成本和维护时间。

缺点:

1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

3、增加了开发成本。

熟悉了三层的一些理论知识,我们来看一下以三层类似的MVC的相关知识,先来看一张关于MVC结构的图片:

MVC三层架构

MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现; View层用于与用户的交互,通常用JSP来实现; Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

MVC开始是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

最后我们看一下MVC的优点与缺点(其实跟三层架构的目的都相同):

优点:

耦合性低,重用性高,生命周期成本低,部署快,可维护性高,有利软件工程化管理等等。

缺点:

不适合小型,中等规模的应用程序,增加系统结构和实现的复杂性 ,视图与控制器间的过于紧密的连接,视图对模型数据的低效率访问,一般高级的界面工具或构造器不支持模式等等。

都叫为三层架构,到底他们有什么不一样呢?最后我们看一下两者之间的区别:

MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。

同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。

在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。

他们相同的设计理念就是:把视图设计与数据持久化进行分离,从而降低耦合性,易于扩展,提高团队开发效率.

综上,为关于三层的一些相关知识,现有理论的指导,再加上实践的躬行,才能掌握的更好。等待下篇的实践博客……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值