对三层架构简单总结

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

  对三层架构简单总结_第1张图片
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。是最值钱最核心的东西
3、数据访问层(DAL):该层所做事务 直接操作数据库,针对数据的增添、删除、修改、查找等。
层是一种 弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。

具体写代码时分为:Model(实体)、Dal、Bll、UI界面。

一般Model项目下(或就是一个文件夹或命名空间)的类都只是各个数据表的对应表示,每个表对应一个类,类中包含的全部是属性,表的每一个字段对应一个属性。Model类一般作为其它层中方法的参数。

Dal项目下都是Add(model m)、Delete(int id)、Update(model m)、GetModel(int id)、GetList(string where)等方法,这些方法中对字符串进行一些拼接,成为一个可以执行的sql语句,然后调用DbHelper(数据库连接工具,可以独立成固定的dll,这个类是通用的跟具体数据库无关,适用于任何ms-sql数据库)工具,执行sql语句就行了。

Bll项目下具有的方法一般和Dal对应,方法名一般一样,只不过在这些方法中加上一些和业务相关的操作,如数据合法性判断等,然后直接调用Dal中对应的方法就行了。

最后说一下,不要迷糊数据库是怎么连接上的呢?DbHelper类中的方法一般都是静态的方法,还有一个静态的string connectionString=PubConstant.ConnectionString成员变量,所以这个类加载到内存后,在任何静态方法调用前,就具有connectionString属性的值了,这个值是从Web.config文件中取得的。有了这个数据库连接字符串,DbHelper中的任何方法调用中都可以先连接数据库,操作完后,再关闭数据库。如在try块中connection.Open(),在catch和finally块中connection.Close()即可。

 

讲的通俗一点:以医院就诊数据为例,要和数据库交互,界面就不用说了,Bll层涉及医生的业务逻辑,Dal层设计时,只要建立好了数据库,知道了建立好了哪些表,就可以直接写Dal层了,Dal层只和具体数据库相关。DbHelper类是所要数据库(都是ms-sql)通用的,Dal调用DbHelper即可。可以看出Dal层只用到数据库,一旦数据库建好,无论是医院的业务还是学校或是政府机关的业务,Dal眼中都一样。但是Bll层就和具体业务相关了。

所以,改一个系统时,DbHelper类不用改,Dal小改(数据库以及数据库中的表不该的话就不用改),Bll全改,界面就不用说了。

你可能感兴趣的:(对三层架构简单总结)