我需要将所有这些“高级”对象合并为一个,但有多少是太多了?如果它需要所有这些“部件”,我可以在这个更大的对象内部有100个对象.
我真的希望这个问题对每个人都有意义.我确定答案不会是一个明确的答案,但我只需要一个经验法则就可以了.如果有更好的设计/编程技术,我真的很讨厌在一个大的内部有100个对象.
谢谢.
编辑1:非常感谢您的回复,但我仍然有点不清楚.我已经标记了一个答案,因为我觉得我可以继续我拥有的东西,但……
让我继续我的人类实例.人类由许多部分(或物体)组成,每个部分也由部分组成,一直到单个细胞.
人类 – >手臂 – >手 – >手指 – >拇指 – >骨骼 – >骨细胞
人类:ojbLeft_Arm,objRight_Arm,objLeftLeg,objRightLeg,objBrain,objHeart,objLeft_Eye,objRight_Eye ….得到我的观点?人体物体内有多少物体太多了?显然,由于人类非常复杂,因此人类对象将被认为是巨大的.你是否将Arm和Leg物体分解成objLimbs然后存储它们?
我想另一个问题是:如果你不想要很多物品,你如何避免它们?
单个对象内的100个对象并不是严格不合适的,但它肯定表明可能有更好的方法.考虑将类似对象分组为复合对象,其中功能类似于最终“超级对象”中的用法.根据经验,您在类中引用的对象数量是对该对象复杂性的(粗略)估计; 100表示复杂性太高.请注意,您可以通过将对象组合在一起成为复合对象来降低有效复杂性,从而增加整体对象数,但减少“superobject”中的直接引用计数.编辑以响应OP的编辑和问题:分组的关键在于您的预期用途和问题域.考虑你的人类榜样;对象模型的适当细分实际上取决于您的数据模型的用途.这里的关键是认识到你并不是要代表所有可能的对象或潜在的现实;您正在创建适合您的预期用途的表示.例如,如果您正在为心脏病专家建模人类,那么拥有一个Human对象可能是合适的,在该对象下您将拥有一个Heart对象,一个Circulatory System对象等;在心脏对象下你可能有左心室,右心室等.然而,对于牙医来说,你的模型仍然会有一个人在顶部,但人类可能会在下一级有一个牙齿集合;牙齿可能包括犬齿,门牙等物体.
这里的关键点是底层对象(人类)是相同的;表示完全不同.您的心脏病专家并不关心您的牙齿,而您的牙医也不会同样关心您的心室.用法定义表示.因此,对于您的情况,您必须确切地确定您的用法是什么,并且该用法可以(希望)定义表示的清晰路径.