作者:
chal ( )
2022-04-20 13:19:34比較早版本的spring 只能利用xml來依賴注入
其實反而比較好理解
spring 如果只有設定好xml的依賴注入
但是沒有設好依賴反轉(也就是宣告成介面)
那就會發現
當你要新增一個功能時 還是要去改動程式碼
但如果宣告成介面
而流程也沒有改變
但需要新功能時
其實只要新增一個實作,並改動xml
就能解決問題
這是最接近開閉原則
不修改軟體 但可以擴展軟體
類似任天堂換遊戲就換卡匣的方式
修改xml 就是 把卡匣拔出來 換新卡匣
後面的spring 改成可以用註解跟設定檔(config.java)的方式
反而會比較不好理解
因為都像是在改程式
補充一下任天堂的類比:
所有的遊戲卡匣只要遵循卡匣介面實作幾個方法
上 方法()
下 方法()
左 方法()
右 方法()
A 方法()
B 方法()
開始()
。。()
就能在任天堂主機裡被使用(xml抽換卡匣)
但如果今天有一個卡匣硬是多了一個C按鈕與C方法
而為了使生效,那就只能去修改任天堂主機(違反開閉原則)