很久没写Java了
就个人观念提供简单思考线索
基本上根据你的内容觉得你对解耦合还没有很理解
讲直白一点
当你import类别就是耦合了
而你import的是接口不是类别就是解耦合了
因为类别提供了实作
import A是接口
A还没有实作
实作由@autowire注入类别物件使用
所以实作可以抽换
你把import的东西仔细看一下哪些是import到类别
全部替换为接口
再透过接口来呼叫使用
物件由autowire来自动生成使用
这样就是解耦了
希望能帮助到你
这个好像有看到例子,感觉跟版友说的qualfied注解有关
作者:
drajan (EasoN)
2022-04-01 09:42:00其实就是一个观念 “当实作依赖于抽象而非实作 就是解耦”
然后必须要靠autowired才能帮我们注入被实作的class?那如果没有autowired又想靠接口隔离怎办?
作者:
tw11509 (John-117)
2022-04-01 10:44:00Autowired就是Spring的DI,如果是每次都要New,Spring有提供另一个Scope的注解当然你还是要autowired还有接口不能直接New没错,所以你一定是呼叫某个method他的type是你要的interface,真的回什么就是看你的实作了
应该说如果不依靠框架,单纯自己想实作接口隔离原则怎办
泛型+参数档+mapping用的util,拿到实际你要用的object
这些观念是共通的,只是 spring 有直接写好的 autowired可以用,没有框架自己实作也可以
作者:
KY1998 (HAN)
2022-04-01 13:05:00@Resource(“name”)也可以
作者: CRPKT (crpkt) 2022-04-02 01:01:00
自己实作就是用 Reflection API