*最近經手了兩個項目,項目一有service層interface,項目二沒有interface只有實現類。
這讓我產生了一個疑問,爲什麼需要定義interface,有什麼好處和壞處。仔細追究之後,發現這個問題很有意思。*
我覺得這個是java程序員,代碼數量敲到一定程序必然會感到疑惑的問題。——勳哥哥HD
- 有個接口,注入的時候可以注入到Service對象,沒有你就要注入到ServiceImp對象。
以後修改了實現,變成ServiceImp2.java了,有接口的話,改下註解的類就行了。沒有的話,你要修改所有用到ServiceImp的類。——黑熊貓愛看書 - 面向對象設計原則中有三條與此相關:開閉原則、依賴倒轉原則、理氏替換原則。還記得依賴倒轉原則吧?高層不依賴於低層,二者都依賴於抽象,也就是面向接口編程。——知乎用戶
- 然而,大多數情況下不會有多實現的情況。
所以,當項目小,開發人員少或者且開發人員水平較高且接近的情況下,可以選擇不寫interface,可以減少編碼。