首先,一般使用接口是很常用並且有益的變成技術。
其次,在spring中,你可以在運行過程中注入各種實現。一個很經典的情況就是在測試階段,注入模擬的實現類。
===
1.網上說jdk動態代理基於實現接口。直接注入實現類會使aop失效。沒有cglib可能真的就失效了。
2.解耦。假如有一天實現類的名稱變了。每個依賴注入它的都要修改。而注入接口的不需要修改,只需要替換實現類就行。
===
首先,一般使用接口是很常用並且有益的變成技術。
其次,在spring中,你可以在運行過程中注入各種實現。一個很經典的情況就是在測試階段,注入模擬的實現類。
===
1.網上說jdk動態代理基於實現接口。直接注入實現類會使aop失效。沒有cglib可能真的就失效了。
2.解耦。假如有一天實現類的名稱變了。每個依賴注入它的都要修改。而注入接口的不需要修改,只需要替換實現類就行。
===