对象分配与对象创建

时间:2012-04-17 13:59:00

标签: oop object pointers

我一直觉得很难决定何时应该创建一个对象并将其传递给需要它的每个对象,或者为每个需要该项目的对象创建一个新对象。

有些情况非常明显,例如分配和实例化后 readonly 实体对象。您可以在任何地方传递相同的对象,而不用担心修改它的另一个对象,这会破坏其他对象,并引用它。

我的问题主要在于向用户表示自己的对象。 cocos2d中的CCSprite,Cocoa(AppKit)中的NSMenuItem以及具有可视化表示的其他对象等对象。



示例:

cocoa 中,我知道我必须为每个NSMenu创建一个NSPopUpButton,以便选择特定按钮不会影响其余按钮。但是,内含NSMenuItems呢?我可以创建一个单独的集并将它们传递给所有菜单吗?你的理由是什么,或者你是如何得出这样的结论的?

其他例子:

在cocos2d和几乎所有基于GUI的应用程序中,您可以传递一个按钮,两个图像/精灵/ ...等。这样一个用于正常状态,另一个用于所选(突出显示,按下,点击)状态。我可以传递相同的图像/精灵/ ...等。两者,使他们指向同一个对象?

我希望这不是一个与实现相关的问题(它最终取决于实现),因为我在很多编程项目中面对它,包括cocoa,cocos2d,Java等等。

PS:我需要帮助选择合适的标签

1 个答案:

答案 0 :(得分:1)

我建议创建新实例,除非这样做会导致性能问题。在许多NSMenuItem之间共享NSMenu个实例会使维护对该实例的控制更加困难,从而增加了出错的风险。