gpt4 book ai didi

OOP 设计 - 许多对象每个都与其他对象的有限子集具有独特的交互

转载 作者:行者123 更新时间:2023-12-04 12:41:49 32 4
gpt4 key购买 nike

如果 A 类与 B、C 和 D 类中的每一个都有唯一的交互,那么交互的代码应该在 A 中还是在 B、C 和 D 中?

我正在编写一个小游戏,其中许多对象可以与其他对象进行独特的交互。例如,EMP点击 sentry gun并禁用它。它也可能达到 grenade并引爆它,它也可能击中 player并应用减速效果。

我的问题是,这段代码应该放在 EMP 类中,还是分散在所有其他类中?我的直觉告诉我要多态地执行此操作,以便我只需告诉每个类处理它喜欢的 EMP 罢工,这将允许我添加更多项目并更改它们处理 EMP 的方式,而无需更改 EMP 代码。

但是,EMP 目前只与我的 50 个对象中的大约 4 个交互,因此用空的 RespondToEMP() 调用填充 46 个对象似乎是错误的。这似乎也有点不直观,如果我决定删除 EMP,我需要更改所有其他类,而 EMP 类本身最终会变得非常小。这也意味着如果我想改变 EMP 的行为方式,我需要查看所有不同的类以找到所有可能的用法。此外,如果 EMP 有一些通用效果,例如爆炸,那么这种效果肯定会在 EMP 代码中,远离所有其他将分发的效果。

最佳答案

我的想法是 sentry gun , grenadeplayer都应该实现一个通用接口(interface)来执行 RespondToEMP 方法。 .这样,如果您稍后决定其他 46 个对象中的一个可以被 EMP 击中,您将知道实现此接口(interface)。

关于OOP 设计 - 许多对象每个都与其他对象的有限子集具有独特的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15253783/

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