[推荐]三层架构的学习_OpenStack, 云计算等杂项讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  OpenStack, 云计算等杂项讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5234 | 回复: 1   主题: [推荐]三层架构的学习        上一篇   下一篇 
yi.liao
注册用户
等级:少校
经验:917
发帖:52
精华:4
注册:2013-1-31
状态:离线
发送短消息息给yi.liao 加好友    发送短消息息给yi.liao 发消息
发表于: IP:您无权察看 2013-2-1 10:41:37 | [全部帖] [楼主帖] 楼主

为什么要学习三层?

一个项目的开发不可能是一蹴而就的,在系统的设计阶段我们不光要考虑系统的性能,还要考虑到代码的可扩展性和系统的后期维护,三层就很好的为我们解决了这个问题.让我们不必为了业务逻辑上的微小变化而迁至整个程序的修改,只需要修改商业逻辑层中的一个函数或一个过程;增强了代码的可重用性;便于不同层次的开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了,最终只要将各个部分拼接到一起构成最终的应用程序。

哪三层?

在项目开发的过程中,有时把整个项目分为三层架构,其中包括:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。三层的作用分别如下:

表示层:为用户提供交互操作界面,这一点不论是对于Web还是WinForm都是如此,就是用户界面操作。

业务逻辑层:负责关键业务的处理和数据的传递。复杂的逻辑判断和涉及到数据库的数据验证都需要在此做出处理。根据传入的值返回用户想得到的值,或者处理相关的逻辑。

数据访问层:负责数据库数据的访问。主要为业务逻辑层提供数据,根据传入的值来操作数据库,增、删、改、查。

三层之间的关系:北京联动北方科技有限公司

三层的理解

表示层的内容就是来和用户打交道,通俗讲就是展现给用户的界面,用户的要求都体现在界面上。

业务逻辑层的功能主要是实现一些具体问题的操作,它是表示层和数据访问层之间沟通的桥梁,主要负责数据的传递和处理。

数据访问层的功能就是对数据库中表的内容的增删改查。

三层的实现将我们的系统的实现过程分门别类,每一层自己做自己的事,互不影响,当我需要其他层的内容时,再去调用。当需要修改时只需改动本层的内容,不会影响到整个系统的代码。

就是传说中的解耦。让那个每一层只关心自己内部的事情,它只知道下层的存在,不知道上层的存在。达到局部改变而不影响全局的目的!

优点

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

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

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

4、有利于标准化;

5、利于各层逻辑的复用。

缺点

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

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

3、增加了开发成本。

三层与MVC的区别

MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(ModelView Controller)模型-视图-控制器

MVC是表现层的架构,MVC的Model实际上是ViewModel,即供View进行展示的数据。ViewModel不包含业务逻辑,也不包含数据读取。




赞(0)    操作        顶端