问下大家关于工程上的问题: service 层有没有必要分成接口和 impl ?
(项目没有对外系统提供服务)
我以前也是一直有分的,但是就以前项目来说,也确实感觉没有什么用处
能举一些例子说明吗?可能做的项目不是很大型,所以没感觉
1
zjp Jul 5, 2018 via Android
如果用到了动态代理就必须分接口和实现,其他的情况下没有强制的要求
|
2
micean Jul 5, 2018
一般情况用不上
但也就 ctrl+左键 2 次的事 所以我不喜欢 |
4
VoidChen Jul 5, 2018
除了以上,补充一个,为了找方法的时候好看一点(直接看接口)
|
5
ddbullfrog Jul 5, 2018
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 Jul 5, 2018 via Android
@ddbullfrog 意思就是没差咯
|
7
misaka19000 Jul 5, 2018
感觉没有用处就不分
|
8
Cbdy Jul 5, 2018
不分,需要的时候再分。从实现抽象出接口不是一条命令的事情吗?不要过度设计
|
10
JRay Jul 5, 2018
我也有过这种想法,一直没理解到接口和 impl 的用处在哪儿
|
11
swim2sun Jul 5, 2018
直接写成 class,如果有多个实现再抽象成接口也不晚啊,Java 重构起来很方便
|
12
Guozi1989 Jul 5, 2018
我这边是强制要求写接口,虽然我个人是及不愿意。逃~
|
13
li1215101 Jul 5, 2018
小项目不分,大项目分,方便看代码,Java service 的逻辑有时候写得比较乱,对外接口和逻辑搞一起很难看懂
|
14
tairan2006 Jul 5, 2018 via Android
没啥球用,真有需要再重构
|
15
nl101531 Jul 6, 2018 via Android
重构的时候就会发现很实用了。另外接口的目的是制定协议,比较复杂的 service 我这边都会分开,比如订单流程,每一个类型订单都会有一个具体的 impl,而上层对外只需要一个接口就好了。
|