我有3種不同類型的數據:圖像,視頻和音頻剪輯。每個人都有一個相關的GPS點,所以我有一個基類,例如:POCO是不是應該有一個基類?
public abstract class Data {
public Latitude { get; set; }
public Longitude { get; set; }
}
這是這樣我就可以在地圖上繪製的一切,而不必擔心它是什麼樣的數據。不過,我一直在閱讀,POCO不應該從C#中的基類object
類中除外。這是真的?
我有3種不同類型的數據:圖像,視頻和音頻剪輯。每個人都有一個相關的GPS點,所以我有一個基類,例如:POCO是不是應該有一個基類?
public abstract class Data {
public Latitude { get; set; }
public Longitude { get; set; }
}
這是這樣我就可以在地圖上繪製的一切,而不必擔心它是什麼樣的數據。不過,我一直在閱讀,POCO不應該從C#中的基類object
類中除外。這是真的?
不,很多POCO對象都有基類。沒有規則說他們不能擁有或應該擁有基類。如果它在你的應用程序中有意義,那就去做吧。
我看到普通的舊clr對象的繼承沒有錯。事實上,繼承是一個驅動因素,爲什麼我喜歡使用POCO對象而不是像Datasets。
你從哪裏讀到的?如果您不允許從System.Object
以外的類派生,您將如何構建對象層次結構? (不用多說,System.Object
將永遠在.NET的類層次結構中處於頂端)
我在這裏閱讀:http://www.subsonicproject.com/docs/Using_SimpleRepository 總之,它說:「他們創建一個沒有基類的對象,它們自己存在,就像普通的CLR對象一樣被稱爲POCO)。「 – 2009-09-23 22:55:03
我相信'a'應該是'是'。 – 2009-09-23 22:55:37
當使用POCO這個詞時,通常要表達與必須繼承基類以使用像一些ORM工具frameork要求:
MyClass的:PersistableEntity(這裏PersistableEntity是在ActiveRecord的框架來管理技術持久性類)
所以你不能使用你的類繼承,因爲你只能繼承來自一個班級。如果是這樣,你可以使用聚合而不是繼承。
因此,在你的榜樣,你的類是POCO :)
雖然不回答你的問題,我希望你重新考慮基類名「數據」。那真的沒有說什麼。每個班級都是數據,非常真實。我建議「位置」作爲一個稍微更具描述性的名稱。 – abelenky 2009-09-23 22:56:54