首页 > 代码库 > 初识三层结构

初识三层结构

	第一次听说三层结构,是九期的一个师哥在给我们讲高校云平台。那天的感觉像是在听天书,以前从没有接触过。不过,那几个不断在师哥口中重复的名词BLL层、DAL层还是留下了些印象。现在自己来到三层结构的学习了,对师哥讲的那些词算是有种久违的感觉。下面就对三层结构的初识做个总结。	一. 多层结构的划分方式。	结构的划分方式有两种,分别是物理上和逻辑上。从物理的角度来说,可分为显示层、业务层和数据层。从逻辑的角度看,可分为UI层、BLL+DAL层以及DB层。这里我们所说的三层结构是指逻辑上划分的三层。	刚开始还真没发现物理上与逻辑上有什么差别,想想这不都是同样的三层吗。这个问题不解决,后面的学习就更是问题。后来发现,它们两个根本不是一回事,物理上的三层是指客户机、应用服务器和数据库服务器,可以称得上是三台机器。而逻辑上的三层是指一台机器上包含了表示层、应用层、数据层和数据库,也可以成为模块,这样可能容易理解些。	值得注意的是,从逻辑结构到物理结构的对应关系并不是唯一的,了解到应该是包含五种。不过现在觉得自己的学习还没有达到那样深层的阶段,这里就不详细研究了,还是先知道就好。大家可以参考下面的图有个简单了解。
			技术分享	二.为什么要使用三层架构。	为什么要用三层,这个问题的答案很简单,可以想想之前学习的软工思想。在整个编程中,最基本的就是“高内聚低耦合”的思想。所以,有了三层,将模块间分层,这样程序出错可以分层去检查,各层次间也不会发生相互影响,就大大提高了效率。	既然谈到这里,就简单的说说三层架构的优缺点。优点:	1. 开发人员可以只关注整个结构中的其中某一层。	2. 可以很容易用新的实现来替换原有层次的实现。	3. 可以降低层与层之间的依赖。	4. 有利于标准化。	5. 利于各层逻辑的复用。缺点:	1. 降低系统的性能。如果不采用分层式结构,很多业务可以直接访问数据库,以此获取相应的数据,如今却必须通过中间层来完成。	2. 有时导致级联的修改。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。在此也有一点需要声明:三层结构也不是万能的,它有优点也有缺点,在软件开发中,也要视情况而定究竟需不需要使用它。紧随其后的就是下一个问题。	三.什么情况下需要使用三层架构。	一句话的总结:当业务复杂到一定程度,当数据存储到相应的数据库或数据存储介质。前面这些都是对三层宏观上的介绍,下面就是对三层中各层的深入剖析。一. 数据访问层(DAL)	1. 作用		1) 从数据源加载数据(Select)		2) 向数据源写入数据(Insert/Update)		3) 从数据源删除数据(Delete)	2. 常用的技术		1) ADO.NET+SQL语句		2) O/R Mapping 框架		3) 访问SQL Server数据库时Linq to SQL	3. 具体应用原则		只提供基本的数据访问,不包含任何业务相关的逻辑处理。	4. 认识与体会		在机房收费系统中,我们都建立了与数据库之间的连接。在这里,我们一遍遍写SQL语句,反复对数据库中的数据进行增删改查,所以利用SQL语句对数据的处理肯定是不陌生。不过,现在分层之后,光从上面的那二. 显示层(UI)	1. 作用		1) 向用户展现特定业务数据		2) 采集用户的输入信息和操作	2. 设计原则		用户至上,兼顾简洁	3. 常用技术		1) Windows Form:Form、Control		2) ASP.NET :aspx, ascx, master, HTML 	4. 具体应用原则		只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。	5. 认识与体会		这一层看似简单,但要做得好确实非常困难的。就还是拿之前做的收费系统来说,我自己觉得我做的界面已经很好了,整齐干净,控件的大小也很统一,但验收的时候,师父就觉得怎么看怎么别扭,还觉得很乱,这样,就给用户不好的心情了。虽说是萝卜青菜,各有所爱,但软件开发还是要去做符合喜闻乐见的大众文化的界面好,用户这一关就不难了。在三层的学习中,显示层也有这么多的技术可以参考,可想,要做出一道佳肴,还需要我们学好技术才行啊。三. 业务逻辑层(BLL)	1. 作用		1) 体现核心价值的部分,关注点集中在业务规则的制定、业务流程的实现等与业务系统有关的系统设计。		2) 处于访问层与表示层中间,起到了数据交换中承上启下的作用。	2. 具体应用原则		负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。	3. 认识与体会		逻辑层,看着名字就觉得它不简单,功能的实现很大程度上是依赖它其中的代码的。加上它又是两层的中间,所以关系的依赖与否对其来说是关键。	在此对各个层也有了更加深刻的了解,似乎觉得三层已然在心中。可是这些远远是不够的,所以,后面自己还将结合实例去进一步了解,就从视频中的登录小例子开始。Ready?Go!

初识三层结构