依賴倒置是軟體設計的原則,實際上是面向介面編程,是OOD設計精髓之一,其原理就是高層模塊不要依賴低層模塊,而要依賴抽象或者介面,抽象不要依賴於細節,該設計原則對並行編程和TDD(測試驅動開發)有非常大的幫助,其中依賴註入設計模式就是充分體現了依賴倒置的原則. 首先依賴註入基本上有三種方式: 1、首先 ...
依賴倒置是軟體設計的原則,實際上是面向介面編程,是OOD設計精髓之一,其原理就是高層模塊不要依賴低層模塊,而要依賴抽象或者介面,抽象不要依賴於細節,該設計原則對並行編程和TDD(測試驅動開發)有非常大的幫助,其中依賴註入設計模式就是充分體現了依賴倒置的原則.
首先依賴註入基本上有三種方式:
1、首先是setter註入,可以理解為向客戶類中介面類型的屬性賦值,根據屬性的實際類型調用不同的服務類型,其中可能會用到策略模式;
2、通過構造函數為客戶類中介面類型的屬性賦值,根據屬性的實際類型調用不同的服務類型;
3、通過可配置化得設置動態調用不同的服務類型,即依賴獲取,其中可能會用到抽象工廠;
其實以上的三種都用了OO的多態性,所以就不得不用依賴註入,這樣省去了代碼的重覆,並且符合OCP原則,雖然可能代碼有時候可能會多,但是提高了可維護性,層次結構也清楚.
也可以這樣說對介面實現類的主動獲取變成對介面實現類的依賴依靠外部註入,所以有時候可以稱依賴註入為“控制反轉”
關於依賴倒置比較好的一篇博客:http://www.cnblogs.com/cbf4life/archive/2009/12/15/1624435.html
關於依賴註入比較好的一篇博客文章分享:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html