初识三层结构

来源:互联网 发布:巴伐利亚级战列舰知乎 编辑:程序博客网 时间:2024/05/18 02:49
第一次听说三层结构,是九期的一个师哥在给我们讲高校云平台。那天的感觉像是在听天书,以前从没有接触过。不过,那几个不断在师哥口中重复的名词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 SQL3. 具体应用原则只提供基本的数据访问,不包含任何业务相关的逻辑处理。4. 认识与体会在机房收费系统中,我们都建立了与数据库之间的连接。在这里,我们一遍遍写SQL语句,反复对数据库中的数据进行增删改查,所以利用SQL语句对数据的处理肯定是不陌生。不过,现在分层之后,光从上面的那些技术来看,瞬间就感觉高大的,还有很多我们要学习的地方。
二. 显示层(UI)1. 作用1) 向用户展现特定业务数据2) 采集用户的输入信息和操作2. 设计原则用户至上,兼顾简洁3. 常用技术1) Windows Form:Form、Control2) ASP.NET :aspx, ascx, master, HTML 4. 具体应用原则只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。5. 认识与体会这一层看似简单,但要做得好确实非常困难的。就还是拿之前做的收费系统来说,我自己觉得我做的界面已经很好了,整齐干净,控件的大小也很统一,但验收的时候,师父就觉得怎么看怎么别扭,还觉得很乱,这样,就给用户不好的心情了。虽说是萝卜青菜,各有所爱,但软件开发还是要去做符合喜闻乐见的大众文化的界面好,用户这一关就不难了。在三层的学习中,显示层也有这么多的技术可以参考,可想,要做出一道佳肴,还需要我们学好技术才行啊。三. 业务逻辑层(BLL)1. 作用1) 体现核心价值的部分,关注点集中在业务规则的制定、业务流程的实现等与业务系统有关的系统设计。2) 处于访问层与表示层中间,起到了数据交换中承上启下的作用。2. 具体应用原则负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。3. 认识与体会逻辑层,看着名字就觉得它不简单,功能的实现很大程度上是依赖它其中的代码的。加上它又是两层的中间,所以关系的依赖与否对其来说是关键。在此对各个层也有了更加深刻的了解,似乎觉得三层已然在心中。可是这些远远是不够的,所以,后面自己还将结合实例去进一步了解,就从视频中的登录小例子开始。Ready?Go!
0 0