发布网友 发布时间:2022-05-17 08:46
共2个回答
热心网友 时间:2023-10-15 20:32
软件开发的分层结构对软件的质量很重要,如果一个小的项目来说 Service层似乎用处不是很大,但如果到了一定大的程序了,那么这service 层进会体现出价值。
你仔细看 和service 层两个层,的引用 类你会发现,在中 会用很多的dateSource 数据库的一些类,什么JDBC包里面的类,但是到了service 里就基本上没有了,当你在Action中再调用service的时候,就完全没有了和数据库有关的任何类了,而如果你直接调用的话Action中就会存在大量的数据库类。这对软件设计的分层存在一定的弊端。
并且在层中主要的是对数据库的增删改查操作,而在service层中还有一个更重要的就是,service是用于对数据逻辑的一些处理,比如你要在增加一条记录前必须先查看那条记录是否已经存在,就得再查一下数据库,那么这样的逻辑就必须得在service层中完成。
总结:service是用于在处理数据的时候做一些逻辑的判断与处理。还提高了软件分层架构。
不知我的回答是否让你满意呢,记得给好评哦。
------------------------------------------------------------------------------------
当年我才疏学浅,再补充一下:
Service 不仅仅是用来调用Dao的,很多情况会调用其他的业务,比如对接其他产品接口,发送短信、邮箱,对接物流,做NoSql等等,我不信你把这些都写在Dao层?还有就是如果你的项目要向第三方开放接口,调用的也是从Service接口里面可以做很多的拦截异常处理等。所以我们的控制器直接操作Service接口就可以基本实现所有的功能调用,Dao只是操作基础数据库的一个接口,Service才是核心。
PS:都这么陈芝麻烂骨头的事还有人点赞我(我就点进来了),你们真可怕。这是我刚毕业那年回答的,想想都快5年过去了,现在已是老司机了,岁月不饶人啊。。。
热心网友 时间:2023-10-15 20:32
简单点说,层基本都是几个固定的增删改查方法,比方说你在用hibernate的时候,数据库发生变化时,就要重新生成相应的,所以发你的代码重新写在service里面,变化都不会影响你的程序了。