依賴倒置原則的定義編程
高層模塊不該該依賴低層模塊,二者都應該依賴其抽象;抽象也不該該依賴細節,而細節應該依賴抽象。核心思想就是:要面向接口編程,不要面向實現編程
架構
依賴倒置原則是實現開閉原則的重要途徑之一,由於它下降了客戶與實現模塊之間的耦合。客戶只須要查看抽象,即可以知道公開的功能以及如何調用,不須要關注具體實現框架
遵循依賴倒置的理由spa
因爲在軟件設計中,細節具備多變性,而抽象層相對穩定,所以以抽象爲基礎搭建起來的架構要比以細節爲繼承搭建起來的架構要穩定的多。這裏的抽象指的是接口或者抽象類,而細節是指具體的實現類。使用接口或者抽象類的目的就是制定好規範和契約,而不去涉及任何具體的操做,把展示細節的任務交給它們具體的實現類去完成。這就是不少時候咱們程序中服務都是單實現,但仍是要定義接口的緣由。.net
依賴倒置原則的做用設計
依賴倒置原則能夠下降類間的耦合類。blog
依賴倒置原則能夠提升系統的穩定性。繼承
依賴倒置原則能夠減小並行開發引發的風險。https://blog.csdn.net/bj_xuzhiqiang/article/details/70213870。我的理解就是先定義了接口,所以並行開發時不一樣模塊之間的引用、關聯均可以正常運行且規避風險。接口
依賴倒置原則能夠提升代碼可讀性和可維護性。開發
依賴倒置原則的實現方法
依賴倒置原則的目的是經過要面向接口的編程來下降類間的耦合性,因此咱們在實際編程中只要遵循如下4點,就能在項目中知足這個規則。
每一個類儘可能提供接口或者抽象類,或者二者逗具有。
變量的聲明類型儘可能是接口或者是抽象類。
任何類都不該該從具體類派生。也就是類最好從抽象類或者接口派生。這個第二點相輔相成。參數變量使用抽象類或者接口。而後具體類去作不一樣實現。多態
使用繼承時儘可能遵循里氏替換原則。保證父類的功能不會被覆蓋。保證程序內的多態是良性的。
依賴倒置原則感想:經歷了一年工做後。確實回頭看看這些原則,體會會更加深入。因爲抽象較爲穩固,不易改變。所以先定義抽象,高層細節都去依賴抽象。去面向接口來進行編程。抽象自上而下的約束行爲。肯定大致框架。以後再去實現細節。