我正在设计一款游戏,但我无法完全理解继承结构。我通常比较擅长,但这只是有太多的重叠,我不能全部决定。游戏的继承/界面设计
我正在寻找模型帆船 - 想想帆的年龄。因此大概所有的东西都会扩展一个Vessel类。
有几种类型的船只风格:划船(厨房,独木舟),方形钻机,前后钻机,具有不同的行为。其中每一个都进一步细分为其他几种类型。我无法决定这是否应该是Vessel的一系列界面或扩展。还要注意,可能会有一些交叉(一艘船可能是划船和方形装备),这使我想到接口?
船舶也有不同的行为:商船,战争的人,私人,海盗。我真的不能确定这应该是一个接口还是另一个类的扩展。然而,在这种情况下没有交叉类型。
最后有个别船只可以有几种行为。商人可能在车队(自卫)或独立(逃跑)。战争的人几乎总是会攻击,除非严重失控......但可以在舰队,中队或独立工作。私人和海盗只会在弱者身上发作 - 通常是独立的,但偶尔会成对出现。我假设这也应该是一个接口?
我的大问题是每种风格的船只(护卫舰,战列舰等)都可以完成这些角色中的任何一个,所以我不能构建一个简单的坚实的继承结构。护卫舰不能扩大人为战争,因为有些人是私人。 Sloop不能扩大正方形操纵,因为有些是前后操纵的。 etcetc。
任何想法,将不胜感激,我有点松散的结局。 谢谢
我头脑中浮现的两个想法是“基于组件的设计”和“策略模式”。就个别船舶的不同行为而言,这绝对是对我的战略模式 - 每艘船都在使用各种不同的策略之一。参见维基百科:http://en.wikipedia.org/wiki/Strategy_pattern – 2011-12-30 20:20:23
一艘船在运行时可能从商船驶向**,所以接口不适用于这种动态行为。 – 2011-12-30 20:25:06
@amadeus:没有明白你的观点。如果你是“编程接口”,你可以做到这一点。 – Bhushan 2011-12-30 20:26:39