max*_*mus 3 oop inheritance class-hierarchy
我想用以下类创建程序:Class Player,它存储有关get/set函数的玩家的一些信息.播放器可以作为AttackPlayer,它将拥有带有get/set功能的数据.Player也可以作为ProtectorPlayer,还有一些其他自己的数据,get/set函数与AttackPlayer不同.
Player也可以是TeamPlayer或FreePlayer,这些类中的每一个都有自己的数据等.
问题是如何正确实现层次结构?
起初我想过多重继承,无论如何都不好.类似于:Player AttackPlayer扩展Player ProtectorPlayer扩展Player
TeamPlayer扩展AttackPlayer或ProtectorPlayer FreePlayer扩展AttackPlayer或ProtectorPlayer
我也考虑过战略模式,但这里不适用,因为没有常见的算法.
有没有什么方法可以帮助组织这种互动?
另一种方法是在Player类中有一个字段,这有助于识别TeamPlayer/FreePlayer是Attack还是Protector类型,并根据它来访问适当的字段.在这种情况下,继承将是这样的:
播放器TeamPlayer扩展播放器FreePlayer扩展播放器
攻击,保护没有继承的结构或类,但作为Player类中的字段.
但我不喜欢这种方法,我正在寻找更好的设计.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |