当我计算出如何在C#中为ASP.NET项目创建子类时,我感觉非常聪明,然后发现了一个问题 - 我不知道如何根据SQL查询的结果创建正确子类的对象。如何根据SQL行中的值创建正确的子类
假设你有一个叫做Animal的类和两个叫Zebra和Elephant的子类。你明白了吗?
我想要做的是执行一个SQL查询,如果返回的行有行[“Type”] =“Zebra”,则加载一个Zebra对象(或者如果它是一个Elephant那么..)。
因此,在原则上,动物类将有一个静态方法:
class Animal{
public static Animal Load(DataRow row){
if (row["Type"]=="Zebra"){
return new Zebra();
}
}
class Zebra : Animal{
//some code here
}
这是在所有可能的或有我只是简单的得到了子类的想法是错误的。很明显,我不是面向对象的专家。
由于提前, 杰克
+1:工厂模式可能是最好的解决办法这里没有提前知道代码正在检索哪种类型的动物。 – NotMe 2010-11-17 19:50:57
总是想知道工厂做了什么;-)听起来很有希望。现在关闭。 – 2010-11-17 20:04:39
看起来正是我需要的。谢谢! – 2010-11-17 20:27:09