三层架构-循序渐进

来源:互联网 发布:13.3英寸笔记本知乎 编辑:程序博客网 时间:2024/03/28 20:31

一、为什么需要三层?

实例


服务员只管接待客人

厨师只管烹炒客人要的美食

采购员只管按客人需求采购

他们各负责其责





结论:

    数据库访问和用户类型判断逻辑放在一起实现

    用户界面层直接调用数据访问实现

    整个系统功能放在同一个项目中实现


二、三层结构基本的概念:

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

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

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

各层作用:

    数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,

也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.

    业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层

是积木,那逻辑层就是对这些积木的搭建。

    表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,

无论表现层如何定义和更改,逻辑层都能完善地提供服务。


三、三层的优缺点:

优点:

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

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

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

4、有利于标准化;

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

缺点:

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

数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设

计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

3、增加了开发成本。

四、三层架构规则:

1.系统各层次及层内部子层次之间都不得跨层调用。

2.Entityobject 在各个层之间传递数据。

3.需要在UI层绑定到列表的数据采用基于关系的DataSet传递,除此之外,应该使用Entityobject传递数据。

4.对于每一个数据库表(Table)都有一个Entityclass与之对应,针对每一个Entity class都会有一个BEM Class与

之对应。

5.在数量上,BEMClass比Entity class要多,这是因为有些跨数据库或跨表的操作(如复杂的联合查询)也需要由

相应的BEM Class来提供支持。

6.对于相对简单的系统,可以考虑将Businessclass 子层和Business Flow 子层合并为一个。

7.UI层和BL层禁止出现任何SQL语句。

五、三层之间依赖关系


六、三层之间的数据传递反向




七、三层结构原理:

    3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。

    所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。三层体系的应用程序将业务

规则、数据访问、合法性校验等工作放到了中间层进行处理(如下图)。通常情况下,客户端不直接与数据库进行交

互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。









1 0
原创粉丝点击