gpt4 book ai didi

oop - 让对象相互引用是不好的 OOP 实践吗?

转载 作者:行者123 更新时间:2023-12-03 10:22:45 24 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

2年前关闭。




Improve this question




原谅我的小白。我正在制作一个游戏,其中几个角色彼此有关系,他们需要能够彼此互动并存储一些关于他们对彼此感觉的关系数据。

我为每个角色都有一个对象。为了执行这些交互,这些角色对象中的每一个都拥有一个包含所有其他角色对象的数组是不是很糟糕?有一个更好的方法吗?

编辑回答问题:
我的语言是 C#。

我在想的是,设置类会创建一个包含所有字符的数组,然后将该数组作为参数传递给每个字符的构造函数。

至于关系的类型,有五个字符,但我想使其可扩展,以防以后添加更多字符。角色之间有对话。他们所说的话会受到他们的情绪以及他们对角色的感受的影响。此外,另一个角色对他们说的话会影响他们的情绪以及他们对这个角色的感受。他们可以进行一对一的对话或分组交谈,因此角色 A 可以同时对角色 B、C、D、E 和 F 说一些话。

顺便说一句,我从这个线程中学到了很多东西。谢谢大家!谢谢!

最佳答案

对象保留对彼此的引用是一种不错的做法 - 树图中的节点保留对其子节点的引用以及子节点保留对其父节点的引用并不少见。

可能成为问题的一件事是您所描述的每个角色都保留对所有其他角色的引用。这是一个 NxN 矩阵,随着字符数的增加,内存使用量会激增。

在每个字符对象中存储所有字符对象的列表的替代方法可能是建立一个关联列表或字典,其中键是(字符 1,字符 2),内容是关系。该列表可以是全局的并存储所有字符之间的所有关系。这里的优点是它随着实际关系的数量呈线性增长,而不是随着系统中字符的数量呈指数增长。

关于oop - 让对象相互引用是不好的 OOP 实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821248/

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