2 a532960944 a532960944 于 2016.03.07 13:38 提问

数据访问层和业务逻辑层为什么要定义接口?

数据访问层可能会操作不同的数据库,可是业务逻辑层我感觉没必要吧,不管从哪个数据库都是一种逻辑判断吧?我感觉没必要写两个实现类

5个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.07 14:06
已采纳

首先,面向接口编程是一种常用的编程规范,使用接口有很多好处,例如便于扩展和代码维护等。
其次,DAO层使用接口,可能不同的数据库访问有不同的实现方法,这个用接口可能相对好理解一下;
而业务逻辑层用接口,是为了便于系统维护和扩展,万一哪一天整个业务流程变化了呢,那时我们只要重新一种实现,然后配置该类型的引用就可以了,而客户端代码由于依赖的是抽象接口,就不需要修改了。

luochoudan
luochoudan   Ds   Rxr 2016.03.07 13:49

可能是出于程序结构的考虑,接口实现,分层更明晰一些。

enpterexpress
enpterexpress   Rxr 2016.03.07 14:05

这是业务逻辑层的作用

ironman612
ironman612   2016.03.07 14:15

就是mvp的程序思想,不要数据访问层跟业务逻辑层有直接的关系,而是双方各开一个接口,统一在present里面调用双方接口,降低耦合性,也有助于单元测试。同时代码上也很好的提升的扩展性和复用性

xionglangs
xionglangs   Rxr 2016.03.07 14:38

为什么要用业务逻辑层:主要是一些稍大型一点的项目,可能会有一些复杂的需求,需要用到很多的算法,但是控制层是用来跟接收视图层和和返回视图层数据的,本身代码已经有点多了,而且每个控制层里面不止有一个方法,所以显得控制层已经很多代码了,如果在把复杂的逻辑运算放在控制层,就会显得控制层东西太多,不好维护,如果放在Dao层的话,因为dao层是连接数据库的,你放了很多的业务逻辑算法在里面,就会显得不伦不类,也不好维护。对于一些逻辑不复杂的项目来说,它的用处确实不大,但MVC的三层架构是为了适合多数的项目,不过具体的层数可以根据自己的项目逻辑复杂度来定,我有个同学他们公司做的项目就有八层。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
黑马程序员:数据访问层,DAO模式
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- DAO模式好处,组成 1.软件开发中的分层开发思想和技术。将一个软件分成多个层次进行开发,化大为小,分而治之,从而缩短软件开发时间,提高软件开发效率。 2.DAO模式使用时: 隔离了数据访问代码和业务逻辑代码。把需要访问的
三层架构:表示层——业务逻辑层——数据访问层
1.什么是三层架构    所谓的三层开发就是将系统的整个业务应用划分为表示层——业务逻辑层——数据访问层,这样有利于系统的开发、维护、部署和扩展。   分层是为了实现“高内聚、低耦合”。采用“分而治之”的思想,把问题划分开来各个解决,易于控制,易于延展,易于分配资源。 ·                  表示层:负责直接跟用户进行交互,一般也就是指系统的界面,用于数据录入,数据显示等。意味
APP开发实战54-业务逻辑层设计(Presenter)和数据访问层设计(Model)
15.2.3业务逻辑层设计(Presenter) 业务逻辑层包括业务处理、数据的生成、处理和转换等业务逻辑相关的类。 分为两大功能模块: (1)业务逻辑层接口模块 (2)业务逻辑层功能模块 强化Presenter的作用,将所有逻辑操作都放在Presenter内也容易造成Presenter内的代码量过大,可以在UI层和Presenter之间设置中介者Mediator,将例如数据校验、组装和
数据访问层的设计(一)——功能与接口定义
数据访问层的设计我研究了很长时间,关于接口的定义,好几次都推翻重来。 园子看到过很多easyui+MVC+EF的文章,在早期,我的设计也类似。 但是后来为了增强它,想加点功能通用的功能进去,就耗费了非常多的时间。   这是一个怎么样的DAL? 也许你已经见过许多实用EF的架构了,它是一套基于领域模型架构中的DAL。 大致结构如图中,DAL就是最下面的那一层。 它的主要功能也体现在
什么是三层架构_表现层/业务逻辑层/数据访问层
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
视图层. 控制层, 业务逻辑层, 数据库访问层------新认识
 程序项目写了很多了, 总结一下 最初写的C/S模式的都没有过分包的习惯, 后来到了B/S的JSP/Servlet/JavaBean , 才知道了分包的意义, 以及模式的概念 . 什么教View 层 ,什么叫Model层 ,什么叫Controller层. 什么叫业务逻辑层?  .... 原来就简单的理解为它是由封装实体数据的javaBean 和 封装业务逻辑的类来组成.(这的所
数据访问层和分层开发
数据访问层 1.持久化:持久化是将程序中的数据在瞬间状态和持久状态间的转换的机制 2.持久化的实现方式:  数据库  普通文件  XML文件 3.持久化的主要操作:  读取 、查找 、保存 、修改 、删除 4.什么是DOA:   DOA位于业务逻辑和持久化数据之间实现对持久化数据的访问   DOA起着转换器的作用,把实体类转换为数据库中的记录 5.DOA模式的作用:   
三层架构(UI/BLL/DAL)
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。  1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。  2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。  3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增、删、改、查。概述      在软件体系架构设计中,
为什么业务层都要写一个接口
这主要是程序的耦合性  降低各个模块间的关联 还有一点就是接口的多态性 什么事耦合性呢? 比如一台电脑 包括主机啊       显示器啊   把他组合在一起就是一台电脑     这就是一个耦合 但是主机坏了   把主机扔掉 电脑就分成了显示器  键盘   这个就是一个松散耦合
表示层调用控制层,控制层调用业务层,业务层调用数据访问层MVC
首先解释面上意思,service是业务层,dao是数据访问层。 呵呵,这个问题我曾经也有过,记得以前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,也不明白有这个有什么用,参加工作久了以后就会知道,业务才是工作中的重中之重。 我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描