美文网首页java/javaweb/
Java web疑惑1 - 为什么service 层 和 DAO

Java web疑惑1 - 为什么service 层 和 DAO

作者: shaYanL | 来源:发表于2018-07-13 19:11 被阅读0次

有问题才容易更进一步

总体概述:

“接口是一种契约,它可以有多种实现。所以接口之有无取决于具体实现是否需要多样化。如果铁定一种DAO或一种Service只有一种实现,那么抽象出接口的意义不大。然而一些大型应用或许需要DAO和Service的多种实现,为了向上一层隐藏具体实现类,需要采用接口。隐藏具体实现类的创建过程,这有两种方法:一是实用工厂方法,代价是代码量大(每个DAO和Service一个工厂)。二是使用Spring的IoC,实现依赖注入,不需要写额外的代码,这也是引入Spring的理由之一。” --from:某博客

service需要多种实现的情况:

"接口提供了一个公用的方法提供方。 接口是用来规定子类的行为的。

举个例子吧 , 比如有个需求, 需要保存客户信息, 有些客户从网站来, 有些从手机客户端来, 有些从后台管理系统录入, 假设不同来源的客户有不同的处理业务流程, 这个时候我定义接口来提供一个保存客户的方法, 然后不同平台实现我这个保存客户的接口, 以后保存客户的话, 我只用知道这个接口就可以了, 具体调用哪个方法  去实例化具体你需要用的类,这也就是JAVA的多态的体现。 而如果你不用接口的话 , 首先我需要哪个方法  我就去实例化哪个类, 冗余很高,  其次扩展很差。  接口就是一个规范, 其子类都会有他提供的方法。 统一管理。" --from:某CSDN

DAO需要多种实现的情况:

如果项目后期有变更数据之久层的时候,通过更改DAO接口的实现类,就可以完成了。

总结:

“现在编程是面向接口编程,举个例子,假如我的代码以前是哪mybatis写的,现在我要那hibernate写,我就只用修改service的实现类和Dao的实现类。我的Control层调用的是service的接口类,所以我就不用修改Control层的内容。修改Service实现类就是让表示层不依赖于业务层的具体实现,实现业务层与表示层的分离。修改Dao层实现类就是让业务层不依赖持久层,实现业务层与持久层的分离。”  --from:某CSDN博客


相关文章

  • Java web疑惑1 - 为什么service 层 和 DAO

    有问题才容易更进一步 总体概述: “接口是一种契约,它可以有多种实现。所以接口之有无取决于具体实现是否需要多样化。...

  • 谈谈架构

    java web开发中,传统的系统架构通常为三层架构:web层,service层,dao层。 web层负责页面数据...

  • Spring Boot 2.X(十一):全局异常处理

    前言 在 Java Web 系统开发中,不管是 Controller 层、Service 层还是 Dao 层,都有...

  • CRM系统

    客户 dao层 service层 action层 applicationContext.xml web.xml

  • java分层架构概念

    service是业务层,DAO (Data Access Object) 数据访问 1.JAVA中Action层,...

  • Spring

    1.Spring 负责管理对象中的所有对象,可以看做项目中对象的管家;贯穿web层 service层 dao层。 ...

  • Hibernate笔记

    JavaEE的三层结构 web层:struts2框架 service层:spring框架 dao层:hiberna...

  • Hibernate学习(环境搭建)

    JavaEE三层结构 web层Struts2框架 service层Spring框架 dao层hibernate M...

  • Spring Boot + Quartz综合练习

    实体类 SportUser.java Step.java dao层 config service 界面 login...

  • SpringMVC学习笔记

    1、代码结构中Dao,Service,Controller,Util,Model是什么意思,为什么划分? web:...

网友评论

    本文标题:Java web疑惑1 - 为什么service 层 和 DAO

    本文链接:https://www.haomeiwen.com/subject/ofuspftx.html