Service层和Dao层的一些自我理解(╥╯^╰╥)(╥╯^╰╥)(学了这么久,这玩意儿似懂非懂的)
2024-09-08 13:55:10
学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实。
这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写
如果有认真看过我代码的朋友会发现,我其实英语特别不好,好多命名方式都是以拼音为主的,所以对于其他人能见名知意的东西来说,对我就是一脸懵逼,Service层和Dao层就是。
这几天系统的专研了一下,简单写一写自己对他俩的理解
Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。
对于MVC架构来说,Service是业务层,Dao是数据访问层
用我的方法来说,Service是业务员,Dao是程序猿,,Service告诉Dao项目需求,Dao来实现。而一个项目不可能是一个人单独做的
所以一个Service控制一个或者多个Dao
我们则相当于是客户,通过业务员去告诉程序猿我们的需求,
而这样做的最大好处就是,
解耦
说的通俗一点,是降低代码之间的耦合,尽量让代码之间不要有太大的联系。
好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用
所以当某部分代码需要修改时,其他代码就不需要动了
而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。
这里其实有个点就是,对于极小的项目来说,Service可以不要,加上这玩意儿只会增加代码量。
但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。
最新文章
- SRM 628 DIV2
- 使用Spring的JAVA Mail支持简化邮件发送
- vs2015手动安装xamarin
- springMvc源码学习之:spirngMVC获取请求参数的方法2
- gulp edm测试
- VS2013+SVN管理
- UINavigation push 于 present到另一个页面详解
- 原生化:AnDevCon 2014 McVeigh 的主题演讲
- join函数——Gevent源码分析
- 分布式文件系统 FastDFS 5.0.5 &; Linux CentOS 7 安装配置(单点安装)——第一篇
- VSCode 必装的 10 个高效开发插件
- Rosserial实现Windows-ROS交互操作
- 配置apache和php mysql的一些问题
- 微服务架构与实践4_Docker
- Haskell语言练习
- log4j日志整合输出(slf4j+commonslog+log4j+jdklogger)
- div模拟selection标签 下拉列表
- Vue.js图片预览插件
- php识别二维码
- 编译原理(六)自底向上分析之LR分析法
热门文章
- TypeScript(一)基本使用
- 搭建MyBatis
- golang单元测试一(简单函数测试)
- python查找相似图片或重复图片
- SpringCloud微服务实战——搭建企业级开发框架(四十六):【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
- day53-马踏棋盘
- $_SERVER[";REQUEST_URI";],在 PHP 众多预定义服务器变量中,$_SERVER[";REQUEST_URI";] 算是经常用到的,但是这个变量只有 apache 才支持
- KatalonRecorder系列(一):基本使用+XPath元素定位
- java学习之JSP
- 【题解】CF1215C Swap Letters