最重要的是,抱歉我的“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种使用相同用例的方法:最佳做法是什么?将它们声明为抽象或虚拟(使用空方法)?
答案 0 :(得分:2)
您应该问自己是否必须在驱动程序中实现该方法,或者它是否是可选的。
在第一种情况下,您使用抽象,在第二种情况下,您使用虚拟。