1

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

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

我的问题主要在于向用户代表自己的对象。CCSpritecocos2d中的对象, NSMenuItemCocoa (AppKit) 中的对象以及其他具有视觉表示的对象。



例子:

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

其他示例:

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

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

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

4

1 回答 1

1

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

于 2012-04-21T22:07:48.733 回答