学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实。

这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写

如果有认真看过我代码的朋友会发现,我其实英语特别不好,好多命名方式都是以拼音为主的,所以对于其他人能见名知意的东西来说,对我就是一脸懵逼,Service层和Dao层就是。

这几天系统的专研了一下,简单写一写自己对他俩的理解

Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。

对于MVC架构来说,Service是业务层,Dao是数据访问层

用我的方法来说,Service是业务员,Dao是程序猿,,Service告诉Dao项目需求,Dao来实现。而一个项目不可能是一个人单独做的

所以一个Service控制一个或者多个Dao

我们则相当于是客户,通过业务员去告诉程序猿我们的需求,

而这样做的最大好处就是,

解耦

说的通俗一点,是降低代码之间的耦合,尽量让代码之间不要有太大的联系。

好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用

所以当某部分代码需要修改时,其他代码就不需要动了

而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。

这里其实有个点就是,对于极小的项目来说,Service可以不要,加上这玩意儿只会增加代码量。

但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。

最新文章

  1. SRM 628 DIV2
  2. 使用Spring的JAVA Mail支持简化邮件发送
  3. vs2015手动安装xamarin
  4. springMvc源码学习之:spirngMVC获取请求参数的方法2
  5. gulp edm测试
  6. VS2013+SVN管理
  7. UINavigation push 于 present到另一个页面详解
  8. 原生化:AnDevCon 2014 McVeigh 的主题演讲
  9. join函数——Gevent源码分析
  10. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇
  11. VSCode 必装的 10 个高效开发插件
  12. Rosserial实现Windows-ROS交互操作
  13. 配置apache和php mysql的一些问题
  14. 微服务架构与实践4_Docker
  15. Haskell语言练习
  16. log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
  17. div模拟selection标签 下拉列表
  18. Vue.js图片预览插件
  19. php识别二维码
  20. 编译原理(六)自底向上分析之LR分析法

热门文章

  1. TypeScript(一)基本使用
  2. 搭建MyBatis
  3. golang单元测试一(简单函数测试)
  4. python查找相似图片或重复图片
  5. SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
  6. day53-马踏棋盘
  7. $_SERVER["REQUEST_URI"],在 PHP 众多预定义服务器变量中,$_SERVER["REQUEST_URI"] 算是经常用到的,但是这个变量只有 apache 才支持
  8. KatalonRecorder系列(一):基本使用+XPath元素定位
  9. java学习之JSP
  10. 【题解】CF1215C Swap Letters