问题描述
- 数据访问层和业务逻辑层为什么要定义接口?
-
数据访问层可能会操作不同的数据库,可是业务逻辑层我感觉没必要吧,不管从哪个数据库都是一种逻辑判断吧?我感觉没必要写两个实现类
解决方案
首先,面向接口编程是一种常用的编程规范,使用接口有很多好处,例如便于扩展和代码维护等。
其次,DAO层使用接口,可能不同的数据库访问有不同的实现方法,这个用接口可能相对好理解一下;
而业务逻辑层用接口,是为了便于系统维护和扩展,万一哪一天整个业务流程变化了呢,那时我们只要重新一种实现,然后配置该类型的引用就可以了,而客户端代码由于依赖的是抽象接口,就不需要修改了。
解决方案二:
可能是出于程序结构的考虑,接口实现,分层更明晰一些。
解决方案三:
这是业务逻辑层的作用
解决方案四:
就是mvp的程序思想,不要数据访问层跟业务逻辑层有直接的关系,而是双方各开一个接口,统一在present里面调用双方接口,降低耦合性,也有助于单元测试。同时代码上也很好的提升的扩展性和复用性
解决方案五:
为什么要用业务逻辑层:主要是一些稍大型一点的项目,可能会有一些复杂的需求,需要用到很多的算法,但是控制层是用来跟接收视图层和和返回视图层数据的,本身代码已经有点多了,而且每个控制层里面不止有一个方法,所以显得控制层已经很多代码了,如果在把复杂的逻辑运算放在控制层,就会显得控制层东西太多,不好维护,如果放在Dao层的话,因为dao层是连接数据库的,你放了很多的业务逻辑算法在里面,就会显得不伦不类,也不好维护。对于一些逻辑不复杂的项目来说,它的用处确实不大,但MVC的三层架构是为了适合多数的项目,不过具体的层数可以根据自己的项目逻辑复杂度来定,我有个同学他们公司做的项目就有八层。
时间: 2024-10-31 23:41:14