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

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

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

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

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

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

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

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

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

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

解耦

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

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

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

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

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

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

随机推荐

  1. 仿B站小火箭发射上升

    效果图:   CSS代码块: <style type="text/css"> .goTop { background-image: url(img/rocket_top ...

  2. 洛谷P4147 玉蟾宫 (单调栈)

    要求我们去找一个最大矩形面积. 单调栈做法(和P1950 长方形那道题类似(一模一样)). 1 #include<bits/stdc++.h> 2 using namespace std; ...

  3. 『现学现忘』Git基础 — 37、标签tag(二)

    目录 5.共享标签 6.删除标签 7.修改标签指定提交的代码 8.标签在.git目录中的位置 9.本文中所使用到的命令 提示:接上一篇文章内容. 5.共享标签 默认情况下,git push 命令并不会 ...

  4. 齐博x1如何录制阿里等第三方直播流

    暂时只支持windows录制,可以在你本地电脑进行录制体验.点击下面的网址,下载录制程序文件,直接解压到任何一个目录都可以.里边同时包含自建直播服务器的功能,不用自建直播流的话,就可以忽视相关配置即可 ...

  5. 40.TokenAuthentication认证

    TokenAuthentication认证介绍 TokenAuthentication是一种简单的基于令牌的HTTP认证 适用于CS架构,例如普通的桌面应用程序或移动客户端   TokenAuthen ...

  6. Oracle:ORA-00911: invalid character解决办法

    问题记录:用jmeter执行sql语句,报错:ORA-00911: invalid character. 解决方法:sql语句末尾";"导致,去掉即可解决. 过程记录: 使用jme ...

  7. netty系列之:来,手把手教你使用netty搭建一个DNS tcp服务器

    目录 简介 搭建netty服务器 DNS服务器的消息处理 DNS客户端消息请求 总结 简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务. ...

  8. MediatRPC - 基于MediatR和Quic通讯实现的RPC框架,比GRPC更简洁更低耦合,开源发布第一版

    大家好,我是失业在家,正在找工作的博主Jerry.作为一个.Net架构师,就要研究编程艺术,例如SOLID原则和各种设计模式.根据这些原则和实践,实现了一个更简洁更低耦合的RPC(Remote Pro ...

  9. 并发bug之源(二)-有序性

    什么是有序性? 简单来说,假设你写了下面的程序: int a = 1; int b = 2; System.out.println(a); System.out.println(b); 但经过编译器/ ...

  10. linux ip命令

    ip link show # 显示网络接口信息 ip link set eth0 up # 开启网卡 ip link set eth0 down # 关闭网卡 ip link set eth0 pro ...