发表时间:2010-11-20
最后修改:2010-11-20
有如下分析:
英雄:名字,性别,国家,能力。
能力:超级力量(杰西卡),再生(卡莱尔),飞行(内森),控制时间(中村宽),精神控制(马特)
具体对象
名字 性别 国家 能力
杰西卡 女 美国 超级力量
卡莱尔 女 美国 再生
内森 男 美国 飞行
中村宽 男 日本 控制时间
马特 男 美国 精神控制
以下是我的实现方法:
英雄用一个抽象类来表示,各个不同的能力分别用一个接口来表示,比如
interface SuperPower{
……
}
interface Regeneration{
……
}
interface Fly{
……
}
这样的好处就是以后若对能力进行细分,比如有2个人都有飞行能力,但是2个飞行能力是有差异的,比方差异值包括飞行持续时间,飞行最快速度等具体因素。
还有一个就是比如皮特和塞乐这2个特殊能力的英雄,皮特是接触其他能力者就会拥有对方的能力,但只保留这一种能力。而塞乐则是可以通过研究其他能力者的大脑来获得那种能力,能力是可以叠加的(所以塞乐还是很犀利的)。
这些英雄,皮特可以实现不同的能力接口,而塞乐可以实现多个能力接口来达到。
但是问题来了,英雄抽象类里的能力怎么表示?需要一个表示全部能力的东西。
PS:正在学习java,疑问很多。可能的话,希望解答问题的大大们可以附上你们宝贵的代码实现。在此跪谢~~欢迎其他不同的想法,不同的分析需求。