使用抽象/虚拟的最佳实践

时间:2015-01-05 11:30:32

标签: c#

最重要的是,抱歉我的“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种使用相同用例的方法:最佳做法是什么?将它们声明为抽象或虚拟(使用空方法)?

1 个答案:

答案 0 :(得分:2)

您应该问自己是否必须在驱动程序中实现该方法,或者它是否是可选的。

在第一种情况下,您使用抽象,在第二种情况下,您使用虚拟。