.net中的三层架构中数据访问层和业务逻辑层为什么要分开

如题所述

数据访问层主要目的是屏蔽上层业务逻辑与底层数据访问,使业务与数据操作无关。

分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。

概括来说,分层式设计可以达至如下目的:分散关注、松散耦合、逻辑复用、标准定义。

一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。

松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。

进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。

“金无足赤,人无完人”,分层式结构也不可避免具有一些缺陷:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-02
类的独立性,单一职责原则。
业务层牵扯到业务方面的处理,这点根本和数据库表没有一点关系,所有将这些和数据层写在同一个类中会使这个类的职责过大。
还有就是 如果 万一牵扯到 更换数据库,那么这个时候仅需要更改数据访问层,而对现有的业务逻辑层不用任何改变。
第2个回答  2011-06-02
你不觉得分开来写要直观些么?而且 还好维护的多

什么是ASP.NET里的三层架构的模式?(详细解说)
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的...

如何理解ASP.NET三层架构与ASP.NET MVC
你好,三层架构是一种开发模式(或者叫模式)而已,根据前后台不同的功能角色将项目逻辑性上分成呈现层(WEB)、业务逻辑层(BLL)和数据存取层(DAL),这种逻辑性的划分目的是为了减少更层之间的耦合性,降低代码维护成本以及提高扩展性。既然是一种模式,三层架构就不是某种平台所独有的,也就是说java...

asp.net 网站项目 如何实现三层架构?
需要说明一下,三层结构不是.NET的专利,也不是专门用在数据库上的技术。它是一种更加普适的架构设计理念。UI层就是与用户交互的界面、用户通过UI层向BLL层发出请求,BLL层再向DAL层发出请求,DAL链接数据库将所要的数据取出,再返回给业务逻辑层,BLL层对数据进行相应处理后呈现在界面上给用户。实际...

如何做好.NET三层框架的项目?
1:数据数据访问层:主要看你的数据层里面有没有包含逻辑处理,实际上他的各个函数主要完成各个对数据文件的操作。而不必管其他操作。2:业务逻辑层:主要负责对数据层的操作。也就是说把一些数据层的操作进行组合。3:表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 三层结...

三层构架和 MVC 不同吗
三层架构中,DAL(数据访问层)、BLL(业务逻辑层)、WEB层各司其职,意在职责分离。MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说,MVC把三层架构中的WEB层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;...

企业局域网的三层架构是怎样的?
三层架构通常意义上的三层架构就是将整个业务应用划分为:表现层、业务逻辑层、数据访问层。区分层次的目的即为了“高内聚,低耦合”的思想。1.表现层:通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。2.业务逻辑层:针对具体问题的操作,也可以说是对数据层的操作,对数据业务...

MVC和普通三层架构的区别
通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。 1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。 2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,...

...和软件的3层架构(表现层,业务逻辑层,数据访问层)有哪些区别和联系...
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的...

asp.net开发3层架构 每一层作用
此外,每层做些什么其它层是完全看不到的,因此更改、更新某层,都不再需要重新编译或者更改全部的层了。这是个很强大的功能。例如,如果把数据访问代码与业务逻辑层分离,当数据库服务器更改后,你只需要更改数据访问的代码,因为业务逻辑层是不变的,因此不需要更改或者重新编译业务逻辑层。一个三层的...

三层架构 WebService能做业务逻辑层吗?
当然可以,数据访问仅仅是最上面一层,下面同样是具有逻辑层的。

相似回答