【发布时间】:2009-10-17 22:55:04
【问题描述】:
在处理大型集合时,以下哪种方法更好?
仅具有字段/属性的类 SimpleObject 和包含 SimpleObject 所需的所有方法实现的类 SimpleObjectController。在运行时,我构建了一组 SimpleObjects,实例化一个 SimpleObjectController 并调用它的方法,传递我想要使用的 SimpleObject。
或
在传统的 OO 方法中聚合 SimpleObject 和 SimpleObjectController 的类“ComplexObject”。在运行时,我有一个 ComplexObject 集合,对它们进行迭代,并根据需要调用它们的方法。
有人建议我第一种方法在内存使用方面更可取,因为所有重量级代码都只在一个对象中,而不是在集合中的每个对象中。我的理解是,如果我们在一个集合中有 1000 个这样的对象,那并不意味着内存中有 1000 个相同的方法实现。将有 1000 个数据实例,但它们将共享一个代码实例(x86 代码段和数据段?)。它似乎也违背了一般的 OO 原则和封装。
【问题讨论】: