以下是我在此提出的问题的后续行动:
Class Hierarchy - Data design in an RPG Game (VB.Net)
我明白上面的答案,这是绝对令人惊讶的,顺便说一下。它是关于用类实现接口的。但是,如果一个类需要与另一个类共享特性,怎么办?
是的,那个类可以成为一个接口。但是,让我们使用这个示例定义。
可以使用或装备的物品
装备的物品可以是盔甲,也可以是武器。
使用过的物品可以治愈球队,施展魔法,或者伤害对方球队。
某些装备的物品可以作为二手物品使用。
某些装备可以施展魔法。
,或者换句话说:
一个可装备的物品可以在其典型的盾牌或武器的使用之外执行任务。但并不是所有的物品都可以作为一种武器。
我的意思是,我可以创建一个实现IWeapon、IShield、IMagic、IUseableItem等的类,但是在调用这些接口时,应该有一种比返回NULL更好的方法。
发布于 2010-08-19 04:14:18
,但是在调用这些接口时,应该有一个比返回NULL更好的方法。
它被称为“不在不支持它们的对象上实现它们”。或者我是这么想的。
一种选择是拥有IEquippable和IUsable,任何可以配置和使用的项目都实现两者,而其他项目只实现适用的接口。
发布于 2010-08-19 16:05:55
老实说,我会在这里选择使用一个项目类。您将拥有大量的功能排列,最终将不得不手动查询接口是否存在或对象类型。因此,试图在设计时修复排列似乎是错误的。
https://stackoverflow.com/questions/3518653
复制相似问题