|
|
|||||
Статические классы
Здравствуйте, вопрос к гуру.
Не злоупотребляю ли я статическими классами? Имеется ввиду конструкция package inpictures.data { public class GlobalVars extends Object { public function GlobalVars() { } { times = new Times(); } public static var times:Times; } } package inpictures.data { public class Times extends Object { public function Times() { } public var server:Number = 0; public var client:Number = 0; public var sync:Number = 0; public function get now():Number { return Math.round(new Date().getTime()/1000)+sync; } public function timeToStr($time:Number):String { trace("timeToStr >>>>>>>>>>>>>>>> "+$time); var temp:Vector.<uint> = new Vector.<uint>; return "str"; } } } а сам класс GlobalVars будет расширен множеством экземпляров классов не используемых в х-классе. Будет ли это отображаться на производительности? Или все же стоит отказаться от подобной реализации и импортировать только используемые экземпляры из GlobalVars?
__________________
return this... |
|
|||||
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
тихий ужос )
|
|
|||||
Во-первых в АС3 нет статических классов. Есть статические свойства классов. Во вторых, они не наследуются. Не важно сколько классов будут расширят класс со статическими полями. Ну и третье, ссылка записанная в статическое поле в любом случае будет только одна.
Странный вопрос. |
|
|||||
Цитата:
Меня интересовало что происходит при импорте. Ответ у меня и так был в голове, но хотелось подтверждения. В чем "ужос"?
__________________
return this... |
|
|||||
Регистрация: Jun 2011
Сообщений: 60
|
Цитата:
Цитата:
|
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Существует полезный совет, который помогает не париться по пустякам: решать проблемы с производительностью когда они появяться, а не до этого.
|
|
|||||
Цитата:
Цитата:
Я лично статическими классами делал: - набор утилитарных функций - набор констант - подобие перечислений (enum) - глобальную точку доступа к экземплярам других классов, которые _очень_ трудно протаскивать. - фабрику UI-компонентов - у неё 100500 методов и всё равно этот интерфейс из 100500 методов никто реализовывать не будет, потому статика. - глобальный набор полей, отражающих глобальное состояние системы, например в туториале. - класс с геттерами для получения строки локализации (он, правда, автоматом генерился) - класс с геттерами заэмбеженных ресурсов (тоже генерился автоматом) Если есть сомнения - лучше обычный класс. При работе со статическим руки скованы - нельзя второй экземпляр запилить для тестов или для другой части ситсемы и передать ей. Последний раз редактировалось expl; 24.04.2013 в 17:22. |
|
|||||
Цитата:
Добавлено через 4 минуты Цитата:
Добавлено через 6 минут Цитата:
Хотя ответ уже был дан "caseyryan" - "Ну и третье, ссылка записанная в статическое поле в любом случае будет только одна. "
__________________
return this... |
Часовой пояс GMT +4, время: 11:06. |
|
« Предыдущая тема | Следующая тема » |
|
|