1.爲什麼「倒轉」?算法
簡單的說,傳統的過程性系統的設計辦法趨向於使高層次的模塊依賴於低層次的模塊;抽象層依賴於具體層。倒置原則是要把這個錯誤的依賴關係倒轉過來。抽象層次包含的是應用系統的商務邏輯和宏觀的,對整個系統來講重要的戰略性決定,是必然性的體現;而具體層次則含有一些次要的與實現有關的算法和邏輯,以及戰術性的決定,帶有至關大的偶然性選擇。編程
2.什麼是依賴倒轉原則spa
依賴倒轉原則要求客戶端依賴於抽象耦合。依賴倒轉原則的表述是:設計
抽象不該當依賴於細節:細節應當依賴於抽象。blog
另外一種表述是:要針對接口編程,不要針對實現編程。意思就是,應該使用Java接口和抽象Java類進行變量的類型聲明,參量的類型聲明,方法的返還類型聲明,以及數據類型的轉換等。接口