Service层和Dao层的一些自我理解(╥╯^╰╥)(╥╯^╰╥)(学了这么久,这玩意儿似懂非懂的)
学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实。
这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写
如果有认真看过我代码的朋友会发现,我其实英语特别不好,好多命名方式都是以拼音为主的,所以对于其他人能见名知意的东西来说,对我就是一脸懵逼,Service层和Dao层就是。
这几天系统的专研了一下,简单写一写自己对他俩的理解
Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。
对于MVC架构来说,Service是业务层,Dao是数据访问层
用我的方法来说,Service是业务员,Dao是程序猿,,Service告诉Dao项目需求,Dao来实现。而一个项目不可能是一个人单独做的
所以一个Service控制一个或者多个Dao
我们则相当于是客户,通过业务员去告诉程序猿我们的需求,
而这样做的最大好处就是,
解耦
说的通俗一点,是降低代码之间的耦合,尽量让代码之间不要有太大的联系。
好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用
所以当某部分代码需要修改时,其他代码就不需要动了
而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。
这里其实有个点就是,对于极小的项目来说,Service可以不要,加上这玩意儿只会增加代码量。
但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)