我有一系列對象,我用LINQ to SQL映射到數據庫中。這些表格高度規範化。我要抽象我的問題。我在數據庫中實現了五個中心實體。然後我有一系列其他對象,我想實現這五個實體中的一個或全部。僞多繼承
假設我正在實施一種體育課(比如運動隊)。這五個實體是五大體育項目;棒球,籃球,足球,曲棍球,足球。我想爲每個體育場明確實施一堂課。
這是一個例子,揚基體育場已經舉辦棒球,曲棍球和足球比賽。我希望它實現這3個接口中的每一個。 StadiumBaseClass是我的抽象基類,與我的數據庫接口。 StadiumBaseClass實現了所有5個主要的運動界面。我不想在所有可能的體育場館中使用相同的代碼來實現IBaseball接口,我希望它在StadiumBaseClass中實現一次。
我這個例子,我只想實現3,這是做這個的最好方法嗎?它有點單調,但不完全?
class YankeeStadium : IBaseball, IHockey, IFootball
{
StadiumBaseClass _Stadium {get; set;}
// IBaseball
public IBaseball.Whatever {get { return _Stadium.Baseball;} }
// IFootball
public IFootball.Whatever {get { return _Stadium.Hockey;} }
// IHockey
public IHockey.Whatever {get { return _Stadium.Hockey;} }
}
你可以閱讀抽象工廠模式,看看它是否與你需要的類似。 – 2012-01-06 00:57:41
你的「抽象基類」就像你的描述所說的那樣是「StadiumBaseClass」,或者是你的代碼顯示的所有體育場封裝的數據對象? – dasblinkenlight 2012-01-06 01:23:50
你是C#4.0還是4.0之前? – dasblinkenlight 2012-01-06 01:36:54