當我計算出如何在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