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   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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!