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

问题描述

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

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

解决方案

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

解决方案二:

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

解决方案三:

这是业务逻辑层的作用

解决方案四:

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

解决方案五:

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

时间: 2024-10-31 23:41:14

java-数据访问层和业务逻辑层为什么要定义接口?的相关文章

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层

    本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现. 废话不多讲,还是怎么一步一步做. 第一步:设计IDao层.在MyWeb.WebTemp.IDao项目中添加IUserDao接口.代码如下:   代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using MyWeb.WebTemp.Model; namespace MyWeb.WebTemp.IDao{p

ASP.NET2.0数据操作之创建业务逻辑层

asp.net|创建|数据 导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是

ASP.NET 2.0数据操作之创建业务逻辑层

导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如说,我们可能不希望产品表中那些被标记为"停用"的产品的"分类编号"或"供应商编号"被更新:我们还可能需要应用一些资历规则,比如说我们都不希望被比自己的资历还要浅的人管理.另外一个比较常见的情况就是授权,比如说只有那些具有特殊

Spring配置事务在DAO层和业务逻辑层

Spring通过AOP实现声明式事务管理.通常通过TransactionProxyFactoryBean设置Spring事务代理.我们需要一个目标对象包装在事务代理中.这个目标对象一般是一个普通Java对象的bean.当我们定义TransactionProxyFactoryBean时,必须提供一个相关的 PlatformTransactionManager的引用和事务属性. 事务属性含有上面描述的事务定义. PlatformTransactionManager: HibernateTransac

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑层的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    (2):数据库访问层的设计Demo    (3):面向接口编程 前言:前面几篇博客我们基本已经介绍完了搭建整个项目和数据库访问层以及一些业务逻辑层的实现,当然了,我们的数据库访问层这样还是可以在进行封装的,但是我到这里就行了吧,项目也不大,不需要那么麻烦的,那么我们今天开始介绍我们需要介绍的内容,那就是我

Scott Mitchell的ASP.NET 2.0数据教程之二:创建一个业务逻辑层

返回"ASP.NET 2.0数据教程目录" 导言 本教程的第一节所描述的数据访问层(Data Access Layer,以下 简称为DAL)已经清晰地将表示逻辑与数据访问逻辑区分开了.不过,即使DAL将 数据访问的细节从表示层中分离出来了,可它却不能处理任何的业务规则.比如 说,我们可能不希望产品表中那些被标记为"停用"的产品的" 分类编号"或"供应商编号"被更新:我们还可能需要应用一些 资历规则,比如说我们都不希望被比自己的

ASP.NET 2.0数据教程之二:创建一个业务逻辑层

本系列文章导航 ASP.NET 2.0数据教程之一:创建一个数据访问层 ASP.NET 2.0数据教程之二:创建一个业务逻辑层 ASP.NET 2.0数据教程之三:母板页和站点导航 ASP.NET 2.0数据教程之四:使用ObjectDataSource展现数据 ASP.NET 2.0数据教程之五:声明参数 ASP.NET 2.0数据教程之六:编程设置ObjectDataSource的参数值 ASP.NET 2.0数据教程之七:使用DropDownList过滤的主/从报表 ASP.NET 2.0

《解剖PetShop》系列之五:PetShop之业务逻辑层设计

业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,我们也将业务逻辑层称为领域层.例如Martin Fowler在<Patterns of Enterprise Application Architecture>一书中,将整个架构分为三个主要的层:表示层.领域层和数据源层.作为领域驱动设计的先驱Eric Evans

基于.NET平台的分层架构实战(十)—业务逻辑层的实现

在这一篇文章中,将实现一个NGuestBook的业务逻辑层. 在实际应用 中,业务逻辑层是至关重要的,他承载着整个系统最核心的部分,也是客户最关 注的部分.这一部分的实现,通常需要技术专家和领域专家通力合作.当然,在 本文章系列的Demo中,由于业务逻辑的简单性,这里看的可能还不是很明显. 在本篇文章的业务逻辑层实现中,业务逻辑层主要承担了以下职责: 1.对不同数据访问层的封装.使得表示层可以不关心具体的数据访问层. 2.业务逻辑数据的填充与转换.如管理员口令的加密. 3.核心业 务的实现.这里