面向对象的方法设计选项

jhe*_*all 1 c# oop

我想开发一个process()方法.该方法以数据类的形式获取一些数据并对其进行处理.数据类很相似,但略有不同.

例如,我们有以下数据类processDataObject_A,processDataObject_B和processDataObject_C.

重载方法更好:

void process(processDataObject_A data)
{
//Process processDataObject_A here
}

void process(processDataObject_B data)
{
//Process processDataObject_B here
}

void process(processDataObject_C data)
{
//Process processDataObject_C here
}
Run Code Online (Sandbox Code Playgroud)

或者让具体的数据类扩展一些抽象数据类,并将其传递给流程方法,然后让方法检查类型并采取相应的行动:

void process(AbstractProcessDataObject data)
{
//Check for type here and do something  
}
Run Code Online (Sandbox Code Playgroud)

或者有更好的方法来解决它吗?如果这是一个Web方法,这种方法会改变吗?

提前致谢

Mar*_*rko 8

我会选择:

process (data) {
   data.doProcessing();
}
Run Code Online (Sandbox Code Playgroud)