我有一系列对象,这些对象已使用 LINQ to SQL 映射到数据库中。这些表是高度规范化的。我要抽象我的问题。我在数据库中实现了五个中央实体。然后我有一系列其他对象,我想实现这五个实体中的一个或全部。
假设我正在实现一种体育场类(想想运动队)。这五个实体就是五大运动;棒球,篮球,足球,曲棍球,足球。我想为每个体育场显式实现一个类。
这是一个例子,洋基体育场举办过棒球、曲棍球和橄榄球比赛。我希望它实现这 3 个接口(interface)中的每一个。 StadiumBaseClass 是与我的数据库接口(interface)的抽象基类。 StadiumBaseClass 实现了所有 5 个主要的运动接口(interface)。我不想在所有可能的体育场中使用相同的代码来实现 IBaseball 接口(interface),我希望它在 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;} }
}
最佳答案
我认为您根本不应该使用继承。你应该有一个带有 name 属性的 Stadium 类,而不是 YankeeStadium 类。
同样,您应该拥有诸如 HasHockey 之类的属性,或者如果 Hockey 属性不适用,则只需返回 null。
关于c# - 伪多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752063/