Je me sentais assez malin quand j'ai travaillé sur la création de sous-classes en C# pour un projet ASP.NET, puis j'ai trouvé un problème - je ne savais pas comment créer un objet de la sous-classe droite en fonction des résultats d'une requête SQL.Comment créer la bonne sous-classe basée sur la valeur dans la ligne SQL
Dites que vous avez une classe appelée Animal et deux sous-classes appelées Zebra et Elephant. Vous avez eu l'idée? Ce que je veux faire est d'effectuer une requête SQL et si la ligne retournée a une ligne ["Type"] = "Zebra" alors charger un objet Zebra (ou si c'est un éléphant alors ..).
Ainsi, en principe, la classe d'animaux aurait une méthode statique:
class Animal{
public static Animal Load(DataRow row){
if (row["Type"]=="Zebra"){
return new Zebra();
}
}
class Zebra : Animal{
//some code here
}
Est-ce la mesure du possible ou ai-je tout simplement eu l'idée de sous-classes mal. Il devrait être évident que je ne suis pas un expert OO.
Merci à l'avance, Jake
+1: Le modèle d'usine est probablement la meilleure solution ici à court d'avoir le code savoir à l'avance quel type d'animal il récupère. – NotMe
Toujours demandé ce que les usines ont fait ;-) Sons prometteurs. Désolée de regarder maintenant. –
On dirait exactement ce dont j'avais besoin. Merci! –