【发布时间】:2014-12-26 13:14:39
【问题描述】:
我什至无法定义我在寻找什么。
我正在编写一个应用程序来确定锦标赛的获胜者。我希望我的基类能够根据玩游戏的人数来改变它的继承,因为多重继承不是一种选择,而且我越想它可能就不是一个很好的选择。
我看到了一些类似的东西
class Base
{
//Constructor receiving the quantity of players
public Base (int quantityOfPlayers)
{
//Changes Base inheritance dynamically based on QuantityOfPlayers
switch (quantityOfPlayers)
{
case 4: (Base : FourPlayers);
case 5: (Base : FivePlayers);
}
}
}
当然,我似乎无法找到一种方法(如果有的话)像这样动态地改变继承。否则我会使用更复杂的方法,尽管每个 getter 和 setter 函数都将基本相同。
非常好的解决方案。让我补充一下,我使用的是 GUI 而不是控制台。
我必须考虑一下,工厂课程很好,但它让我确信我在考虑我的方法。
【问题讨论】:
-
根据玩家数量更改继承听起来不太好
Software Design。也许如果您详细说明为什么需要根据玩家数量更改继承,我们可以提出解决此问题的不同最佳方法。 -
@OrelEraki 通常会同意,但对于游戏来说,看看这对于菜单导航之类的东西如何非常有用
-
@Franky_D 我的回答细节看起来很复杂,因为我在一个领域提供了一个完整的示例,基本上你将拥有你的基本功能,在接口和基类中定义合同,如果你想覆盖一个您使用的合同的特定元素
IContractName.MethodName语法