对.NET三层结构的理解

最近学了一些关乎.NET结构分层方面的技术和思想,感觉分层结构既很好得体现了OO思想,也很好的融合了设计模式。这样分层的好处就是极大提高了软件的可复用,和扩展,易维护以及灵活性。

经典的三层结构分为:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。各个分层之间通过对外接口来互相访问,除此之外就几乎没有什么联系,很好体现了模块之间的松耦合。而层内部主要是处理和本层工作有关的业务,绝不牵扯其他层的业务!这样如果哪里工作异常只要对相应层进行修改就可以了,不会涉及到其他层,因此对软件的可维护性起到了很好的促进作用。

下面就我所学的简单介绍对三层结构的理解。

一:表现层

表现层主要是对从业务逻辑层里面调用得到的数据进行显示,不进行任何的加工。同时该层还会收集用户操作所需的请求传递给业务逻辑层去加工,然后由业务逻辑层去访问数据访问层取得数据。

不过该层有时候会兼做业务逻辑层的一些小部分功能,比如对用户输入数据的验证以及操作的合法性等,这其实也可以的,毕竟这样做提高了效率,也比较直观。

二:业务逻辑层

在业务逻辑层里面就是加工处理通过访问数据访问层来获取的数据,然后再传给表现层显示出来。同时还会接受从表现层传来的数据以传参的形式传给数据访问层去请求数据。该层所做的工作比较复杂,做业务上的数据校验,并实现业务流程。

说白点该层就是表现层与数据访问层之间的桥梁,两者的接触都是通过业务逻辑层来完成的。

三:数据表现层

该层里面应业务逻辑层的请求去处理与数据库之间的交互,不对数据做任何业务上的加工。捕获数据库交互式出现的异常,抛出或记录下来。可以想象在这里SQL语句是最多的,调用数据库的存储过程也是在这实现。

 

这就是大体的三层结构的模型,当然如果细分下去还会有五层,六层甚至七层,这就会要用到设计模式中的一些模式,比如工厂模式等。

三层模式之间通过自身提供的对外方法来传参访问。比如用户想登陆系统,在表现层输入用户名和密码,表现层会收集相关的数据传递给业务逻辑层,业务逻辑层将数据经过一些处理和封装之后传递给数据访问层,数据访问层此时就执行相应的数据库操作,并将结果返回上一层。

可以说这三层之间松耦合,互不干扰,之间的联系仅仅通过各自提供的接口来访问,哪一层出了问题就去找哪一层去解决。同时层内部的各个类之间也是“松耦合”,如果还互相调用和依赖就会比较复杂,会有“臭虫”出现。

 

注:以上是我对.NET三层结构的理解,不当之处请见谅。学习三层结构最好的方法就是去研究微软的PetShop4.0,这东西挺经典,也挺值得去研究的!

 

原文地址:https://www.cnblogs.com/saper/p/1320099.html