最近进入了三层的学习,刚开始实在是不明白三层是什么?为什么要分层?

三层有哪些?

1.UI(View),表示层。接收显示数据(接受用户输入数据、显示处理后的数据);

2.BLL(Business Logic Layer),业务逻辑层。数据处理和传递,如:逻辑判断、计算

3.DAL(Data Access Layer),数据访问层。与数据库打交道。访问数据库,对数据表进行Select,Insert,Update,Delete操作,并且将处理后的数据保存到数据库

                                                                                         

三层_数据库

 

为什么要使用三层?(来源于生活)

目的:高内聚,低耦合

耦合性:块间联系,模块间相互联系紧密程度的一种度量。模块间联系越紧密,耦合性越强,模块的独立性越差

内聚性:块内联系,一个模块内各元素(语句之间、程序段之间)联系的越紧密,他的内聚性越高

三层_UI_02

1.如果顾客感觉服务不好,就是服务员的问题;

如果顾客觉得这个菜不好吃,馊了,就是厨师的问题;

如果觉得今天菜买的不够新鲜,坏了,就是采购员的问题

2.如果服务员请假或离职了,就找另一个服务员顶替;如果厨师今天请假或离职了,就找其他厨师;如果采购员今天请假或离职了,就找其他的采购员。

各司其职,在其位,谋其政,行其权,尽其责

①、在某一层里面,语句联系越紧密,内聚越高。层与层之间联系越差,耦合性越弱,独立性就越强。

②、开发人员可以只关注整个结构中的其中一层,降低层与层之间的依赖。任何一层发生变化都不会影响另外一层。

③、利于各层逻辑的复用(就像第一次机房里面的模块)

 

他们是如何关联、联系(UI—>BLL—>DAL)的?

通过变量或实体作为参数来进行传递

  

三层_数据库_03

在VS中的形式:

三层_数据库_04

 

 为什么他们都要引用Model层,有什么作用?

Model:业务数据模型,为了在三层之间传送数据,将三层联系起来,在三层之间传递数据。独立于其他三个层次,不属于任何一个层次

 

什么情况下需要使用?

需要:当业务复杂到一定程序,当数据存储到相应的数据库或者独立的数据存储介质情况下。业务访问访问脱离业务单独存在,业务脱离UI单独存在,UI只需要呼叫业务访问层就可以实现跟用户的交互。

不需要:简单、没有真正的数据存储层