基於介面程式設計。

2021-06-23 03:00:26 字數 2103 閱讀 7394

舉乙個常用的例子,比如程式的資料庫訪問層能夠同時支援,sqlserver, oracle等多種資料庫。這樣,在例項化ado.net物件和具體操作時候,就要走不同的分支。乙個是sql server的,乙個是oracle的。 這時候,就需要不同的條件(可以是後台設定的使用sql or oracle or ...),例項化不同資料庫訪問類的物件。

//介面預設public,加上public修飾符也不報錯

inte***ce iuserservice

public class sqluserservice:iuserservice

public bool i***ists()

}

public class oracleuserservice : iuserservice

public bool i***ists()

}

iuserservice userbll = null;

//根據不同條件,給介面實現不同的類的例項。

iconnectionstringstoragecontainer介面:

public inte***ce iconnectionstringstoragecontainer

具體實現類hashtableconnectionstringstoragecontainer,用於類庫專案:

}

呼叫的地方,根據條件不同,給介面例項化不同的類的物件,這裡寫在乙個單獨的類中:

public class connectionstringstoragefactory

return _connectionstringstoragecontainer;}}

這樣,當web專案呼叫的時候,例項化的是httpconnectionstringstoragecontainer類,

dal中例項化ef dbcontext資料庫上下文物件的時候,根據不同connectionstringstoragecontainer類:

public string getwellmeownedflagbygmpi(int? gmpi_id)

;using (var edw_ato = dalswitchdb.getedwatomiccontext())

return "n";}}

dalswitchdb:

/// /// this class contains switchdb methods

///

public class dalswitchdb

public static edw_atomicentities getedwatomiccontext()

基於介面訪問與基於介面實現類訪問

在基於物件模型特別是com物件的應用開發中,我們一般是定義了相當多的介面,及圍繞介面相當多的實現類。這裡涉及到對相關介面的訪問,訪問是基於介面指標訪問還是基於介面實現類的訪問,這兩者是有不同的。基於介面訪問,那麼只能呼叫介面的方法,對於實現部分其它的方法的呼叫是無能為力的。基於實現類的訪問,可以呼叫...

基於Linux的QoS程式設計介面研究與分析(1)

第一章緒論 1.1什麼是linux linux是一套免費使用和自由傳播的類unix作業系統,它主要用於基於intel x86系列cpu的計算機上。這個系統是由全世界各地的成千上萬的程式設計師設計和實現的。其目的是建立不受任何商品化軟體的版權制約的 全世界都能自由使用的unix相容產品。linux的出...

基於Linux的QoS程式設計介面研究與分析(5)

2.2 sbm 子網頻寬管理 qos只能保證和最弱的鏈路一樣的通訊質量。qos懥磼是傳送端和接收端間的端到端,這就表明沿著路由的每乙個路由器一定要支援現在使用的qos技術。然而,qos懥磼由頂至底也是要從下面兩個方面認真考慮的 傳送端和接收端主機必須支援qos 使得應用和系統能獲得明顯或不明顯的好處...