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

看板Soft_Job作者 (perry tsai)時間3年前 (2022/04/01 02:10), 編輯推噓10(10013)
留言23則, 8人參與, 3年前最新討論串2/8 (看更多)
很久沒寫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

04/01 08:11, 3年前 , 1F
這個好像有看到例子,感覺跟版友說的qualfied註解有
04/01 08:11, 1F

04/01 08:11, 3年前 , 2F
04/01 08:11, 2F

04/01 09:42, 3年前 , 3F
其實就是一個觀念 「當實作依賴於抽象而非實作 就是解耦」
04/01 09:42, 3F

04/01 10:10, 3年前 , 4F
然後必須要靠autowired才能幫我們注入被實作的class?
04/01 10:10, 4F

04/01 10:10, 3年前 , 5F
那如果沒有autowired又想靠介面隔離怎辦?
04/01 10:10, 5F

04/01 10:27, 3年前 , 6F
我的理解是介面無法new只能new他的實作
04/01 10:27, 6F

04/01 10:44, 3年前 , 7F
Autowired就是Spring的DI,如果是每次都要New,Spring有
04/01 10:44, 7F

04/01 10:44, 3年前 , 8F
提供另一個Scope的註解
04/01 10:44, 8F

04/01 10:44, 3年前 , 9F
當然你還是要autowired
04/01 10:44, 9F

04/01 10:49, 3年前 , 10F
還有介面不能直接New沒錯,所以你一定是呼叫某個method
04/01 10:49, 10F

04/01 10:49, 3年前 , 11F
他的type是你要的interface,真的回什麼就是看你的實作
04/01 10:49, 11F

04/01 10:49, 3年前 , 12F
04/01 10:49, 12F

04/01 11:11, 3年前 , 13F
應該說如果不依靠框架,單純自己想實作介面隔離原則
04/01 11:11, 13F

04/01 11:11, 3年前 , 14F
怎辦
04/01 11:11, 14F

04/01 12:00, 3年前 , 15F
泛型+參數檔+mapping用的util,拿到實際你要用的object
04/01 12:00, 15F

04/01 12:00, 3年前 , 16F
這些觀念是共通的,只是 spring 有直接寫好的 autowired
04/01 12:00, 16F

04/01 12:00, 3年前 , 17F
可以用,沒有框架自己實作也可以
04/01 12:00, 17F

04/01 12:01, 3年前 , 18F
不過這樣很搞就是了
04/01 12:01, 18F

04/01 12:31, 3年前 , 19F

04/01 12:31, 3年前 , 20F
感覺這個有點像
04/01 12:31, 20F

04/01 13:05, 3年前 , 21F
@Resource(“name”)也可以
04/01 13:05, 21F

04/02 01:01, 3年前 , 22F
自己實作就是用 Reflection API
04/02 01:01, 22F

04/02 07:32, 3年前 , 23F
自己搞就是用反射
04/02 07:32, 23F
文章代碼(AID): #1YHUwJHr (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1YHUwJHr (Soft_Job)