@Service public class xxxImpl implements xxxService {
@Override
public xxx xxxx() {
}
public static xxxx() {
}
} 大概是这样子的情况
1
RedBeanIce 2021-03-11 18:05:22 +08:00
菜鸟一枚
表示没有感受到问题。最多就是对方法区占用了一点内存? 一般建议通过引入接口的 service 调用重写的的方法?? |
2
GeruzoniAnsasu 2021-03-11 18:09:15 +08:00
能有啥问题?? 光 static 咋看得出来
static 又不可能是接口方法 你又不描述这些 static 是干啥的 static plus 1+1 这种方法能有啥问题嘛 |
3
uselessVisitor 2021-03-12 08:01:36 +08:00
static 中不能使用托管的 bean 啊,只能用 set 引入 bean 才行,可能对后来的维护有影响
|
4
erisfloralia OP @GeruzoniAnsasu 给其他方法调用的,比较通用的方法,所以他说用静态的方便给其他类调用
|
5
erisfloralia OP @beichenhpy 谢谢大佬解答
|
6
yazinnnn 2021-03-12 09:37:50 +08:00
你被 oop 脑控了
|
7
javapythongo 2021-03-12 10:56:59 +08:00
没啥大问题吧,可能就这一个方法,又不好写到其它工具类里面
|
8
javapythongo 2021-03-12 10:58:31 +08:00
唯一的问题就是有点违反开闭原则了,调用者必须知道具体的接口实现类才行
|
9
gwybiaim 2021-03-12 11:15:02 +08:00
@RedBeanIce #1 无论是不是静态,只要类加载了,就会占方法区的内存。
|
10
gwybiaim 2021-03-12 11:16:00 +08:00
最大的缺点是失去了多态的特性,进而很多 spring 的特性用不了,比如 AOP 以及基于 AOP 的功能
|
11
uselessVisitor 2021-03-12 11:21:51 +08:00
@erisfloralia 比较通用的方法可以尝试写成基类继承
|
12
woshiaha 2021-03-12 11:23:23 +08:00
这种可以写成 static 的公共方法一般是要抽到 Util 类里面去的把 放在 service 类里面给其他类调用感觉怪怪的
|
13
ychost 2021-03-12 12:37:35 +08:00
Static 抽取到基类,或者 Util 里面去吧
|
14
erisfloralia OP |
15
zydxn 2021-03-12 15:42:07 +08:00
没必要抽到 Util 类的静态方法可以写在接口里,参考 Interface Stream
|
16
cluulzz 2021-03-12 16:17:17 +08:00
要用没啥问题...比较通用的还是拉到 util 里吧
|