Я чувствовал себя довольно умно, когда я разработал, как создавать подклассы в C# для проекта ASP.NET, тогда я нашел проблему - я не знал, как создать объект правого подкласса на основе результатов SQL-запроса.Как создать правильный подкласс на основе значения в строке SQL
Скажите, что у вас есть класс под названием Animal и два подкласса Zebra и Elephant. Вы поняли?
Что я хочу сделать, это выполнить SQL-запрос, и если возвращаемая строка имеет строку ["Type"] = "Zebra", тогда загрузите объект Zebra (или если это Elephant then ..).
Так, в принципе, класс Animal будет иметь статический метод:
class Animal{
public static Animal Load(DataRow row){
if (row["Type"]=="Zebra"){
return new Zebra();
}
}
class Zebra : Animal{
//some code here
}
Возможно ли это вообще или я просто пришла в голову идея подклассов неправильно. Должно быть очевидно, что я не эксперт по ОО.
Спасибо заранее, Джейк
+1: Узор завод, вероятно, является лучшим решением здесь, не имея кода заранее знать, какой тип животного он извлекает. – NotMe
Всегда удивлялся, что заводы сделали ;-) Звучит многообещающе. Теперь посмотрим. –
Похож на то, что мне нужно. Благодаря! –