gpt4 book ai didi

oop - 使用的设计模式

转载 作者:行者123 更新时间:2023-12-01 09:29:43 25 4
gpt4 key购买 nike

我想用以下类制作程序:Player 类,通过 get/set 函数存储有关玩家的一些信息。Player 可以是 AttackPlayer,它有自己的数据和 get/set 函数。Player 也可以是 ProtectorPlayer,也可以使用其他一些自己的数据,其 get/set 功能不同于 AttackPlayer

Player 也可以是 TeamPlayerFreePlayer,每个类都有自己的数据等。

问题是如何正确实现层次结构?

一开始想的是多重继承,反正也不好。就像是:播放器AttackPlayer 扩展 PlayerProtectorPlayer 扩展播放器

TeamPlayer 扩展 AttackPlayer 或 ProtectorPlayerFreePlayer 扩展 AttackPlayer 或 ProtectorPlayer

我也想了一些策略模式,但是这里不适用,因为没有通用的算法。

有什么方法可以帮助组织这种互动吗?

另一种方法是在 Player 类中设置一个字段,这有助于识别 TeamPlayer/FreePlayer 是 Attack 还是 Protector 类型,并根据该字段访问适当的字段。在这种情况下,继承将是这样的:

播放器TeamPlayer 扩展 PlayerFreePlayer 扩展播放器

攻击、保护结构或类,但不继承,但作为 Player 类中的字段。

但我不喜欢这样的方法,我正在寻找更好的设计。

最佳答案

恕我直言,继承是错误的模型。相反,我会有一个玩家类和不同的角色。这取决于玩家是否可以同时担任多个角色。我会使用策略模式。

关于oop - 使用的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com