1. 程式人生 > 其它 >JAVA基礎-面向介面程式設計

JAVA基礎-面向介面程式設計

面向過程程式設計

初學者程式設計時多半採用直接耦合的方式程式設計,即在類中直接new一個物件,或者將程式碼邏輯大段的寫在一個方法裡,有點兒類似於面向過程。

問題出現

這樣雖然可以滿足當下的需求,但是一旦需求變化,比如:

場景一:覆蓋

PD提了新的需求,這時需要增加一個新的邏輯替代原有邏輯,則需要手動覆蓋大段原始碼;

場景二:動態呼叫

需要是要動態呼叫不同的實現邏輯以滿足新需求,這時程式碼中可能會多出不少if else。

面向介面程式設計

場景一:覆蓋

當一個介面有多個實現類,需要通過name注入的方式指定某個實現類,否則報錯。name注入的方式:1.@AutoWired+@Qualifier("helloService") 2.@Resource(name="helloService")

場景二:動態呼叫

可以用map儲存該介面的所有實現類,map中的值初始化可以採用:

Map<String, TrafficMode> map = applicationContext.getBeansOfType(TrafficMode.class);

map可以放到某個factory的成員變數中,這時map中就裝有了所有實現類,呼叫時根據引數動態呼叫即可。

參考連結:https://www.imooc.com/article/17263