gpt4 book ai didi

design-patterns - 避免循环依赖的模式

转载 作者:行者123 更新时间:2023-12-04 18:10:02 27 4
gpt4 key购买 nike

我搜索了一段时间,但我想毫无疑问我可以真正找到问题的答案。

我正在用 java 开发基于文本的 RPG 游戏,我的 map 被分成几个区域,保存在数据库中,因为数据量太大,无法将其存储在内存中。总是加载一个包含 * 字段的区域。每个字段可以包含 0..* NPC、元素、 Prop 、...

现在我的问题是,每次玩家走上一个 field 时,该 field 上的所有 NPC(可能还有它的邻居)都应该是可见的,这使得在 field 中保存 NPC 引用是有意义的。另一方面,NPC应该可以很自由地四处走动,如果NPC能够引用他们目前所在的领域,那就更容易了。

我现在阅读了很多关于循环依赖的内容,我很确定这是解决这个问题的最丑陋的方法。我目前在想的是存储每个区域中NPC的引用以及NPC中字段的引用。这将是一种中间方式,唯一的大问题是将 NPC 从一个区域移动到另一个区域,但至少这种情况不会经常发生。

现在我要求的是某种模式来解决这个问题,或者只是一个引导我走向正确方向的好主意。如果有人能帮助我,我会很高兴。

谢谢

最佳答案

我意识到这是一个老问题,但希望其他人可能需要这个意见。

我经常看到的是将循环依赖彼此远离,这样它们就不会直接意识到或受到影响。一种方法是引入一个中间人,该中间人将保留两者的引用。
在面向对象的编程中,将使用接口(interface)并让依赖类实现和使用接口(interface)。

正如设计大师所说,更好的选择是改变你的设计,以免陷入这种情况(更容易说......)
希望这可以帮助

V

关于design-patterns - 避免循环依赖的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16287958/

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