依賴倒轉原則

依賴倒轉的原則歸結爲一句話“抽象不應該依賴於細節,細節應該依賴於抽象”。具體說接口不應該依賴於其實現原理,而是應該其實現原理依賴於接口。
在日常開發中,我們經常會高層模塊直接調用底層模塊,如在高層模塊功能中調用低層的數據庫功能模塊,但這樣隨即引發了一個令人頭大的問題,就是如果我們在開發時臨時改換底層的存儲方式,而高層模塊是與低層的數據庫是緊緊地綁定在一起,我們就不得不去修改高層模塊,這也就違反了開放-封閉原則,也導致了高層模塊不具有複用性。而如果低層數據庫的實現方式是針對接口編程,就不需要去在意我們具體使用的是哪種數據庫,因爲接口提供給我們的方法是一致的。

public interface Database  {

    void data();
}
class SqlserDatabase implements Database{

    void data(){
        ...
        具體實現
    }
}
class MyDatabase implements Database{

    void data(){
        ...
        具體實現
    }
}
客戶端程序中
static void Main(string[] args){
    Database database;
    database=new SqlserDatabase();//如果後期需要更換數據庫只需新建一個數據庫類實現了DataBase,再更改這裏的實例化就可以了
    database.data();
}

總結一下依賴倒轉原則就是針對抽象編程,而不是針對實現細節進行編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章