类层次结构 - 类重叠的RPG游戏中的数据设计(VB.Net)

时间:2010-08-19 04:06:29

标签: vb.net class

这是我在这里提出的问题的后续内容:

Class Hierarchy - Data design in an RPG Game (VB.Net)

我理解上面这篇文章中的答案,顺便说一句,这绝对是惊人的。它是关于实现类的接口。但是,如果一个类需要与另一个类共享功能呢?

是的,该类可以是一个接口。但是,让我们使用这个示例定义。

可以使用或装备ITEM 装备好的物品可以是ARMOR或WEAPON
使用过的项目可以治疗团队,施放魔法,或者伤害对方团队 某些装备项目可以作为使用项目 某些装备物品可以施展魔法。

或者换句话说: 可装备的物品可以在其典型的盾牌或武器使用之外执行动作。但并非所有物品都可以充当枪支或武器。

我的意思是,我可以创建一个实现IWeapon,IShield,IMagic,IUseableItem等的类。但是当调用这些接口时,应该有一个比返回NULL更好的方法。

2 个答案:

答案 0 :(得分:1)

  

但是当调用这些接口时,应该有一种比返回NULL更好的方法。

它被称为“不在不支持它们的对象上实现它们”。或者我会想到的。

一个选项是拥有IEquippable和IUsable,以及任何既可以配备又可以使用的项目同时实现两者,而其他项目只实现适用的界面。

答案 1 :(得分:0)

老实说,我会选择在这里使用一个Item类。您将有许多功能的排列,并且最终将不得不手动查询接口存在或对象类型。因此,尝试在设计时修复排列似乎是错误的。