某英雄竞技手游中,英雄包含隐身、沉默、射箭、眩晕、位移等技能,项羽拥有隐身、沉默、位移的技能,后羿拥有隐身、沉默、射箭、眩晕的技能,为此,我们设计了这样一个ISkill接口,这样的设计是否合理?请说明合理或不合理的原因并绘制重构之后的类图。
时间: 2023-11-08 19:24:35 浏览: 321
这ISkill接口的设计不太合理,因为它只是简单地将技能都作为方法定义在接口中,而没有考虑到技能之间的关联性。如果后续需要添加新的技能,可能需要修改接口,这会带来一定的麻烦。
我们可以将技能拆分成不同的类,每个类只负责一个技能,然后让英雄包含这些技能类。这样会更加灵活,也符合单一职责原则。
下面是重构后的类图:
![重构后的类图](https://img-blog.csdnimg.cn/20211014213646589.png)
阅读全文