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

看板Soft_Job作者 ( )時間2年前 (2022/04/20 13:19), 2年前編輯推噓0(005)
留言5則, 2人參與, 2年前最新討論串8/8 (看更多)
比較早版本的spring 只能利用xml來依賴注入 其實反而比較好理解 spring 如果只有設定好xml的依賴注入 但是沒有設好依賴反轉(也就是宣告成介面) 那就會發現 當你要新增一個功能時 還是要去改動程式碼 但如果宣告成介面 而流程也沒有改變 但需要新功能時 其實只要新增一個實作,並改動xml 就能解決問題 這是最接近開閉原則 不修改軟體 但可以擴展軟體 類似任天堂換遊戲就換卡匣的方式 修改xml 就是 把卡匣拔出來 換新卡匣 後面的spring 改成可以用註解跟設定檔(config.java)的方式 反而會比較不好理解 因為都像是在改程式 補充一下任天堂的類比: 所有的遊戲卡匣只要遵循卡匣介面實作幾個方法 上 方法() 下 方法() 左 方法() 右 方法() A 方法() B 方法() 開始() 。。() 就能在任天堂主機裡被使用(xml抽換卡匣) 但如果今天有一個卡匣硬是多了一個C按鈕與C方法 而為了使生效,那就只能去修改任天堂主機(違反開閉原則) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.145.188 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1650431976.A.2D0.html

04/21 09:24, 2年前 , 1F
老實說這是最差的 等同把xml當動態語言使用 資料交換
04/21 09:24, 1F

04/21 09:26, 2年前 , 2F
格式當語言是很糟糕的 沒有補全也難以除錯
04/21 09:26, 2F
如果是怕xml打錯 spring會提供基本的除錯 最理想的設計情況 是只要新增calss 就能完成功能修改 程式主體完全不用動 測試上就少了很多 spring boot 比 spring 方便許多 但也因為他省略了很多設定 直接學spring boot會比較不好理解 其實spring 是用反射機制去xml找出class檔 幫你new出來 所以也不一定要寫在xml上 其他文字檔理論上也可以(但可能就要自己寫一套) 只是你如果注入是寫在註解或config.java 很難去解釋為什麼還是要去更動程式主體才能完成功能修改 但如果是寫在xml或文字檔 你就可以說 這次只要新增calss就能完成任務 不用動到程式

04/21 12:04, 2年前 , 3F
把xml換成json 接受度會不會高一點
04/21 12:04, 3F
json比xml更像資料 類似簡化的xml 反而xml說是設定檔 還比較可以接受 可以用config.java 但心裡歸類成xml ※ 編輯: chal (36.235.66.147 臺灣), 04/21/2022 12:28:50

04/22 22:16, 2年前 , 4F
我知道 但這樣有不少缺點 json的話好一點但差不多 就
04/22 22:16, 4F

04/22 22:16, 2年前 , 5F
說到這了
04/22 22:16, 5F
文章代碼(AID): #1YNvVeBG (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1YNvVeBG (Soft_Job)