【发布时间】:2014-03-11 14:46:51
【问题描述】:
我想要做的最好用一些代码来解释:
这里我有两个类(更准确地说是数据集中的 DataTables,但我宁愿将其描述为类符号):
class A {
public aType varA;
public bType varB;
public cType varC;
}
class B {
public aType varA;
public bType varB;
public cType varC;
public dType varD;
}
这些表是由一个名为varSelect的变量定义的:
A varnameA = (varSelect == 1) ? ABuilder() : null;
B varnameB = (varSelect == 2) ? BBuilder() : null;
在代码中我必须使用类似的东西:
if((varSelect == 1 && varnameA.varA == true) ||
(varSelect == 2 && varnameB.varA == true)
{
...
}
如您所见,它做同样的事情,但它们有一些不同的属性,但我将主要使用相同的类成员进行检查。我怎么能设计出这样的东西?
注意:认为 B 是 A 类的较新版本。但某些代码将不得不继续使用 A 作为其数据源。
【问题讨论】:
-
只要您有一组有限已知的具体类需要以多态方式访问,Visitor pattern 就很有帮助。
-
我尝试连接这两个元素,直到我意识到它们实际上是不同数据集的数据表。
-
现在正在寻找并尝试了解访问者模式。
-
不,使用
dynamic类型变量更容易。
标签: c# design-patterns