作者ripple0129 (perry tsai)
看板Soft_Job
标题Re: [请益] Spring boot的依赖注入降低耦合的例子
时间Fri Apr 1 02:10:25 2022
很久没写Java了
就个人观念提供简单思考线索
基本上根据你的内容觉得你对解耦合还没有很理解
讲直白一点
当你import类别就是耦合了
而你import的是介面不是类别就是解耦合了
因为类别提供了实作
import A是介面
A还没有实作
实作由@autowire注入类别物件使用
所以实作可以抽换
你把import的东西仔细看一下哪些是import到类别
全部替换为介面
再透过介面来呼叫使用
物件由autowire来自动生成使用
这样就是解耦了
希望能帮助到你
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 8.39.126.39 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1648750227.A.475.html
1F:推 ntpuisbest: 这个好像有看到例子,感觉跟版友说的qualfied注解有 04/01 08:11
2F:→ ntpuisbest: 关 04/01 08:11
3F:推 drajan: 其实就是一个观念 「当实作依赖於抽象而非实作 就是解耦」 04/01 09:42
4F:推 ntpuisbest: 然後必须要靠autowired才能帮我们注入被实作的class? 04/01 10:10
5F:→ ntpuisbest: 那如果没有autowired又想靠介面隔离怎办? 04/01 10:10
6F:推 ntpuisbest: 我的理解是介面无法new只能new他的实作 04/01 10:27
7F:推 tw11509: Autowired就是Spring的DI,如果是每次都要New,Spring有 04/01 10:44
8F:→ tw11509: 提供另一个Scope的注解 04/01 10:44
9F:→ tw11509: 当然你还是要autowired 04/01 10:44
10F:→ tw11509: 还有介面不能直接New没错,所以你一定是呼叫某个method 04/01 10:49
11F:→ tw11509: 他的type是你要的interface,真的回什麽就是看你的实作 04/01 10:49
12F:→ tw11509: 了 04/01 10:49
13F:推 ntpuisbest: 应该说如果不依靠框架,单纯自己想实作介面隔离原则 04/01 11:11
14F:→ ntpuisbest: 怎办 04/01 11:11
15F:→ bheegrl: 泛型+参数档+mapping用的util,拿到实际你要用的object 04/01 12:00
16F:推 liturtle: 这些观念是共通的,只是 spring 有直接写好的 autowired 04/01 12:00
17F:→ liturtle: 可以用,没有框架自己实作也可以 04/01 12:00
18F:→ bheegrl: 不过这样很搞就是了 04/01 12:01
20F:→ ntpuisbest: 感觉这个有点像 04/01 12:31
21F:→ KY1998: @Resource(“name”)也可以 04/01 13:05
22F:推 CRPKT: 自己实作就是用 Reflection API 04/02 01:01
23F:推 randall1234: 自己搞就是用反射 04/02 07:32