2009-09-23 19 views
1

我有3種不同類型的數據:圖像,視頻和音頻剪輯。每個人都有一個相關的GPS點,所以我有一個基類,例如:POCO是不是應該有一個基類?

public abstract class Data { 
    public Latitude { get; set; } 
    public Longitude { get; set; } 
} 

這是這樣我就可以在地圖上繪製的一切,而不必擔心它是什麼樣的數據。不過,我一直在閱讀,POCO不應該從C#中的基類object類中除外。這是真的?

+4

雖然不回答你的問題,我希望你重新考慮基類名「數據」。那真的沒有說什麼。每個班級都是數據,非常真實。我建議「位置」作爲一個稍微更具描述性的名稱。 – abelenky 2009-09-23 22:56:54

回答

5

不,很多POCO對象都有基類。沒有規則說他們不能擁有或應該擁有基類。如果它在你的應用程序中有意義,那就去做吧。

1

我看到普通的舊clr對象的繼承沒有錯。事實上,繼承是一個驅動因素,爲什麼我喜歡使用POCO對象而不是像Datasets。

1

你從哪裏讀到的?如果您不允許從System.Object以外的類派生,您將如何構建對象層次結構? (不用多說,System.Object將永遠在.NET的類層次結構中處於頂端)

+0

我在這裏閱讀:http://www.subsonicproject.com/docs/Using_SimpleRepository 總之,它說:「他們創建一個沒有基類的對象,它們自己存在,就像普通的CLR對象一樣被稱爲POCO)。「 – 2009-09-23 22:55:03

+0

我相信'a'應該是'是'。 – 2009-09-23 22:55:37

1

當使用POCO這個詞時,通常要表達與必須繼承基類以使用像一些ORM工具frameork要求:

MyClass的:PersistableEntity(這裏PersistableEntity是在ActiveRecord的框架來管理技術持久性類)

所以你不能使用你的類繼承,因爲你只能繼承來自一個班級。如果是這樣,你可以使用聚合而不是繼承。

因此,在你的榜樣,你的類是POCO :)

相關問題