Re: [請益] Spring boot的依賴注入降低耦合的例子

軟工

860

很久沒寫Java了
就個人觀念提供簡單思考線索

基本上根據你的內容覺得你對解耦合還沒有很理解
講直白一點
當你import類別就是耦合了
而你import的是介面不是類別就是解耦合了
因為類別提供了實作

import A是介面
A還沒有實作
實作由@autowire注入類別物件使用
所以實作可以抽換

你把import的東西仔細看一下哪些是import到類別
全部替換為介面
再透過介面來呼叫使用
物件由autowire來自動生成使用
這樣就是解耦了

希望能幫助到你

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 8.39.126.39 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1648750227.A.475.html
ntpuisbest1樓這個好像有看到例子,感覺跟版友說的qualfied註解有 04/01 08:11
ntpuisbest2樓 04/01 08:11
drajan3樓其實就是一個觀念 「當實作依賴於抽象而非實作 就是解耦」 04/01 09:42
ntpuisbest4樓然後必須要靠autowired才能幫我們注入被實作的class? 04/01 10:10
ntpuisbest5樓那如果沒有autowired又想靠介面隔離怎辦? 04/01 10:10
ntpuisbest6樓我的理解是介面無法new只能new他的實作 04/01 10:27
tw115097樓Autowired就是Spring的DI,如果是每次都要New,Spring有 04/01 10:44
tw115098樓提供另一個Scope的註解 04/01 10:44
tw115099樓當然你還是要autowired 04/01 10:44
tw1150910樓還有介面不能直接New沒錯,所以你一定是呼叫某個method 04/01 10:49
tw1150911樓他的type是你要的interface,真的回什麼就是看你的實作 04/01 10:49
tw1150912樓 04/01 10:49
ntpuisbest13樓應該說如果不依靠框架,單純自己想實作介面隔離原則 04/01 11:11
ntpuisbest14樓怎辦 04/01 11:11
bheegrl15樓泛型+參數檔+mapping用的util,拿到實際你要用的object 04/01 12:00
liturtle16樓這些觀念是共通的,只是 spring 有直接寫好的 autowired 04/01 12:00
liturtle17樓可以用,沒有框架自己實作也可以 04/01 12:00
bheegrl18樓不過這樣很搞就是了 04/01 12:01
ntpuisbest20樓感覺這個有點像 04/01 12:31
KY199821樓@Resource(“name”)也可以 04/01 13:05
CRPKT22樓自己實作就是用 Reflection API 04/02 01:01
randall123423樓自己搞就是用反射 04/02 07:32