[英]Best practice using abstract / virtual
首先,對我的“ EngRish”表示抱歉。 我正在重新審視我的一些項目,以使他們的同事更容易使用/理解它們。 簡而言之,我正在開發一個將協議驅動程序集成到我們的SCADA系統的框架,我有一個抽象類,提供了一些必須由協議驅動程序專用的通用功能,例如:
打開與該字段的通信:
調用方法: void ConnectionOnScan(string connectionName)
在基類中,我有這樣的東西:
public void ConnectionOnScan(string connectionName)
{
//... some preliminary operation here
try
{
ConnectionOnScan(channelNumber);//provided by the derived class
}
catch (Exception e)
{
//some code here to properly register the fault to the SCADA System
}
}
派生類應提供的方法應為(根據系統):
void ConnectionOnScan(UInt64 channelNumber)
通常,驅動程序必須在此方法內執行某些操作,在少數情況下,此方法可以為空。
我的目標是即使對於低技能的程序員,也盡可能簡化驅動程序的開發過程。
在相同的用例中,我大約有30種方法:最佳實踐是什么? 聲明它們是抽象的還是虛的(使用空方法)?
您應該問自己是否必須在驅動程序中實現該方法,或者該方法是否可選。
在第一種情況下,您使用抽象,在第二種情況下,您使用虛擬。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.