问下大家关于工程上的问题: service 层有没有必要分成接口和 impl ?
(项目没有对外系统提供服务)
我以前也是一直有分的,但是就以前项目来说,也确实感觉没有什么用处
能举一些例子说明吗?可能做的项目不是很大型,所以没感觉
1
zjp 2018-07-05 09:00:52 +08:00 via Android
如果用到了动态代理就必须分接口和实现,其他的情况下没有强制的要求
|
2
micean 2018-07-05 09:04:37 +08:00
一般情况用不上
但也就 ctrl+左键 2 次的事 所以我不喜欢 |
4
VoidChen 2018-07-05 09:24:30 +08:00
除了以上,补充一个,为了找方法的时候好看一点(直接看接口)
|
5
ddbullfrog 2018-07-05 09:26:25 +08:00
One of the main interests of using Spring is AOP. This is the technology that allows Spring to add new behaviours on top of your Beans: for instance, this is how transactions or security work.
In order to add those behaviours, Spring needs to create a proxy on your class, and there are two ways of creating a proxy: If your class uses an interface, Spring will use a standard mechanism provided by Java to create a dynamic proxy. If your class doesn ’ t use an interface, Spring will use CGLIB to generate a new class on the fly: this is not a standard Java mechanism, but it works as well as the standard mechanism. |
6
ioc 2018-07-05 09:29:03 +08:00 via Android
@ddbullfrog 意思就是没差咯
|
7
misaka19000 2018-07-05 09:29:51 +08:00
感觉没有用处就不分
|
8
Cbdy 2018-07-05 09:30:48 +08:00
不分,需要的时候再分。从实现抽象出接口不是一条命令的事情吗?不要过度设计
|
10
JRay 2018-07-05 09:45:31 +08:00
我也有过这种想法,一直没理解到接口和 impl 的用处在哪儿
|
11
swim2sun 2018-07-05 09:48:28 +08:00
直接写成 class,如果有多个实现再抽象成接口也不晚啊,Java 重构起来很方便
|
12
Guozi1989 2018-07-05 09:53:57 +08:00
我这边是强制要求写接口,虽然我个人是及不愿意。逃~
|
13
li1215101 2018-07-05 13:55:30 +08:00
小项目不分,大项目分,方便看代码,Java service 的逻辑有时候写得比较乱,对外接口和逻辑搞一起很难看懂
|
14
tairan2006 2018-07-05 16:30:16 +08:00 via Android
没啥球用,真有需要再重构
|
15
nl101531 2018-07-06 08:41:19 +08:00 via Android
重构的时候就会发现很实用了。另外接口的目的是制定协议,比较复杂的 service 我这边都会分开,比如订单流程,每一个类型订单都会有一个具体的 impl,而上层对外只需要一个接口就好了。
|