【发布时间】:2016-09-18 02:36:29
【问题描述】:
当传递给“工厂”的“对象定义”变得(太)大/复杂时有什么缺点吗?
示例
在游戏引擎中,我有一个非常大的 prototype 类 3D 图形对象,至少对我来说是这样。
它包含:-
- 3D 网格的指针(句柄)
- 一个包含 8 个纹理的指针(句柄)(例如,朗伯、高光)
- 8 种纹理的颜色(例如颜色倍增器) - 每个 4 个浮点数
- 8 个纹理的自定义设置 - 每个 4 个浮动
- ~ 10 个布尔标志,用于混合、深度测试、深度写入等
- (随着项目的进行逐渐添加)
在游戏逻辑中,我缓存了散布在各处的一些(100 个?)原型实例。它们中的大多数都作为字段存储在许多子系统中。
我发现按值存储prototype也很方便。
问题
- 除了明显的直接内存/CPU成本外,原型很大时是否会出现“容易被忽视”的缺点?
- 确定原型(传入工厂的定义)太大/复杂的标准是什么?可以治愈它的补救措施/设计模式是什么?
- 原型是否应该存储在业务/游戏逻辑中,而不是通过句柄/指针? (我有这个想法是因为人们倾向于将指针用于大对象,但这是一个非常弱的理由。)
【问题讨论】:
-
这个问题很可能被否决/关闭,因为它太板并且主要基于意见。你有实际问题吗?
-
目前没有。但如果我仍然允许它继续下去,我担心会有。我认为预防胜于治疗。
-
我建议您将可疑代码发送至codereview.stackexchange.com,然后在那里寻求反馈。在发布您的问题之前,请确保您 follow this guide。