oop - 多个对象引用相同的逻辑对象是否更有效,或者只是将每个逻辑对象作为其他对象的子对象?
问题描述
因为我是一个非常业余的游戏开发者,所以提前为一个可能超级不清楚的解释道歉。我目前正在尝试使用 godot 引擎制作一个殖民地模拟类型的游戏,所以我正在模拟一堆角色并让它们相互交互。每个角色都是基本角色场景的一个实例,目前看起来像这样:
-BaseCharacternode
-UInodes
-LogicNodes
-LogicNode
-LogicNode
-LogicNode
每个逻辑节点都包含用于计算诸如关系和日程安排等事物的功能。我想知道是否值得更改它,以便每个角色引用的游戏中每个逻辑节点只有一个总体实例,如果这会提高性能,因为每个实例角色中的数据会更少,或者完全是浪费时间,因为每个角色之间的交流会花费更长的时间。再说一次,对不起,这太令人费解了,我还没有学习很多技术术语
解决方案
虽然我喜欢让对象知道它们的行为,但在“游戏角色”的情况下,这种方法很可能最终会浪费太多资源。
在这种情况下,我相信拥有一个能够处理所有逻辑并将字符作为简单数据结构的“服务级别”会更有效。因此,您可以拥有处理逻辑的服务和表示字符的简单对象。
我建议您查看refactoring.guru以查找有关设计模式的更多信息。这是一个非常好的收藏,肯定会帮助你 - 我一直用它来刷新我的想法。
推荐阅读
- azure - aks-engine 无法创建内部负载均衡器
- ios - 推送下一个视图控制器时删除 UISearchBar 的延迟
- javascript - 对存储在本地存储中的组件的引用在刷新时未定义
- android - java.lang.NoSuchMethodError: 没有虚拟方法 getMccString()Ljava/lang/String;
- c# - 将所有查询与弹性搜索索引匹配
- docker - 为 docker 配置代理服务器
- mysql - 慢查询——如何提高mysql中的查询性能
- python - 未找到架构 armv7 的符号(在 Xcode 和 Python3 中运行存档时)
- php - 数组中的数组 - 搜索表单,获取类别和标签
- python - 用于delete_rows的openpyxl方法不删除最后一行