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

作者: chal ( )   2022-04-20 13:19:34
比較早版本的spring 只能利用xml來依賴注入
其實反而比較好理解
spring 如果只有設定好xml的依賴注入
但是沒有設好依賴反轉(也就是宣告成介面)
那就會發現
當你要新增一個功能時 還是要去改動程式碼
但如果宣告成介面
而流程也沒有改變
但需要新功能時
其實只要新增一個實作,並改動xml
就能解決問題
這是最接近開閉原則
不修改軟體 但可以擴展軟體
類似任天堂換遊戲就換卡匣的方式
修改xml 就是 把卡匣拔出來 換新卡匣
後面的spring 改成可以用註解跟設定檔(config.java)的方式
反而會比較不好理解
因為都像是在改程式
補充一下任天堂的類比:
所有的遊戲卡匣只要遵循卡匣介面實作幾個方法
上 方法()
下 方法()
左 方法()
右 方法()
A 方法()
B 方法()
開始()
。。()
就能在任天堂主機裡被使用(xml抽換卡匣)
但如果今天有一個卡匣硬是多了一個C按鈕與C方法
而為了使生效,那就只能去修改任天堂主機(違反開閉原則)
作者: superpandal   2022-04-21 09:24:00
老實說這是最差的 等同把xml當動態語言使用 資料交換格式當語言是很糟糕的 沒有補全也難以除錯
作者: netburst (133 134 592)   2022-04-21 12:04:00
把xml換成json 接受度會不會高一點
作者: superpandal   2022-04-22 22:16:00
我知道 但這樣有不少缺點 json的話好一點但差不多 就說到這了

Links booklink

Contact Us: admin [ a t ] ucptt.com