Классы Singleton и использование памяти - PullRequest
1 голос
/ 05 декабря 2011

Общий вопрос об использовании классов Singleton в приложении AS3: если у меня довольно сложная модель данных и много разных классов представлений, имеющих ссылку на экземпляр модели, жертвует ли производительность?

Другими словами, я хочу, чтобы все мои компоненты представления расширяли базовый класс, имеющий ссылку на модель.Повлияет ли это на производительность моего приложения?Или это нормально, потому что они просто указатели, ссылающиеся на одноэлементный экземпляр?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Я не думаю, что это хорошая идея, чтобы все ваши виды имели доступ к модели, просто потому что вам может это нужно.

Кроме этого, я не вижу проблем. Представления просто содержат ссылку на некоторый объект, стоимость которого составляет 4 байта за ссылку, что в принципе незначительно по сравнению со всеми необходимыми представлениями памяти.
Технически, доступ к полям быстрее, чем к глобальным объектам (например, объекты класса являются глобальными объектами), но в этом случае я также сомневаюсь, что это будет иметь значение.

0 голосов
/ 05 декабря 2011

Синглтон - крайне плохая практика (http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/). Экземпляры классов, особенно Views, должны иметь только те ссылки, которые вы даете . Они не должны быть в состоянии обратиться и получить свои данные из эфира.

Но, кроме того, если вы добавите какие-либо прослушиватели событий в ваш синглтон, вы можете вызвать утечки памяти (ваши представления не смогут собирать мусор) http://www.developria.com/2010/08/rethinking-addeventlistener-an.html.

...