单例类和内存使用情况

时间:2011-12-05 18:32:13

标签: actionscript-3 model-view-controller design-patterns

在AS3应用程序中使用Singleton类的一般问题:如果我的数据模型非常复杂,并且有许多不同的视图类,它们都引用了模型实例,那么性能是否会被牺牲?

换句话说,我希望我的所有视图组件都扩展一个具有模型引用的基类。这会影响我的应用程序的性能吗?或者它是否可以,因为它们只是引用单例实例的指针?

2 个答案:

答案 0 :(得分:0)

Singleton是非常糟糕的做法(http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/)。类实例(尤其是视图)应该只有您提供它们的引用。他们不应该伸出援手,把他们的数据从以太中拿出来。

但是,除此之外,如果向Singleton添加任何事件侦听器,可能会导致内存泄漏(您的视图将无法进行垃圾回收)http://www.developria.com/2010/08/rethinking-addeventlistener-an.html

答案 1 :(得分:0)

我认为让所有观点都可以访问该模型并不是一个好主意,只是因为可能需要它。

除此之外,我认为没问题。视图将简单地包含对某个对象的引用,每个引用的成本为4字节,与实际需要的所有内存视图相比,这基本上可以忽略不计。
从技术上讲,访问字段比访问全局对象更快(例如,类对象是全局对象),但在这种情况下我也怀疑这很重要。