Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.04.2013, 14:25
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 1  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Статические классы

Здравствуйте, вопрос к гуру.
Не злоупотребляю ли я статическими классами? Имеется ввиду конструкция
Код AS3:
package inpictures.data {
 
	public class GlobalVars extends Object {
 
		public function GlobalVars() {
		}
 
		{
			times = new Times();
		}
 
		public static var times:Times;
 
	}
 
}
Код AS3:
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";
		}
 
	}
 
}
Конкретно интересует вопрос что происходит с ресурсами, если мы к примеру будем создавать 20 экземляров х-класса и в каждом будет погружен
Код AS3:
import inpictures.data.GlobalVars;
а сам класс GlobalVars будет расширен множеством экземпляров классов не используемых в х-классе. Будет ли это отображаться на производительности? Или все же стоит отказаться от подобной реализации и импортировать только используемые экземпляры из GlobalVars?
__________________
return this...

Старый 24.04.2013, 14:36
chamele0n вне форума Посмотреть профиль Отправить личное сообщение для chamele0n Посетить домашнюю страницу chamele0n Найти все сообщения от chamele0n
  № 2  
Ответить с цитированием
chamele0n
[+4 24.04.13]
[+4 20.04.13]

Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
тихий ужос )
__________________
Personal Page
$demo = $away3d + $bullet + $pathfinding;

Старый 24.04.2013, 14:42
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Во-первых в АС3 нет статических классов. Есть статические свойства классов. Во вторых, они не наследуются. Не важно сколько классов будут расширят класс со статическими полями. Ну и третье, ссылка записанная в статическое поле в любом случае будет только одна.
Странный вопрос.

Старый 24.04.2013, 14:54
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 4  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Во-первых в АС3 нет статических классов. Есть статические свойства классов.
Прошу прощения, Вы правы, Я не правильно высловился.

Меня интересовало что происходит при импорте. Ответ у меня и так был в голове, но хотелось подтверждения.

Цитата:
Сообщение от chamele0n Посмотреть сообщение
тихий ужос )
В чем "ужос"?
__________________
return this...

Старый 24.04.2013, 16:12
Simplifier вне форума Посмотреть профиль Отправить личное сообщение для Simplifier Найти все сообщения от Simplifier
  № 5  
Ответить с цитированием
Simplifier

Регистрация: Jun 2011
Сообщений: 60
Цитата:
Меня интересовало что происходит при импорте
Цитата из справки:
Цитата:
Если импортированный класс не использовать в сценарии, он не будет экспортирован как часть SWF-файла. Это значит, что можно импортировать большие пакеты, не заботясь о размере SWF-файла; байт-код, связанный с классом, включается в SWF-файл, только если этот класс действительно используется. Недостатком импортирования классов, которые не понадобятся, является повышение вероятности конфликта имен
Наличие импортов не влияет на производительность. Эта инструкция служит лишь для того, чтобы однозначно идентифицировать используемые классы.

Старый 24.04.2013, 16:18
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 6  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
Будет ли это отображаться на производительности?
Существует полезный совет, который помогает не париться по пустякам: решать проблемы с производительностью когда они появяться, а не до этого.

Старый 24.04.2013, 17:11
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Во-первых в АС3 нет статических классов
Да ладно, все их так называют, а то что запрета на создание экземпляра статического класса нет - дык это проблем не создаёт - ну создал ты экземпляр без методов и полей и что?

Цитата:
Не злоупотребляю ли я статическими классами? Имеется ввиду конструкция
В данном конкретном случае - вроде нет.

Я лично статическими классами делал:
- набор утилитарных функций
- набор констант
- подобие перечислений (enum)
- глобальную точку доступа к экземплярам других классов, которые _очень_ трудно протаскивать.
- фабрику UI-компонентов - у неё 100500 методов и всё равно этот интерфейс из 100500 методов никто реализовывать не будет, потому статика.
- глобальный набор полей, отражающих глобальное состояние системы, например в туториале.
- класс с геттерами для получения строки локализации (он, правда, автоматом генерился)
- класс с геттерами заэмбеженных ресурсов (тоже генерился автоматом)

Если есть сомнения - лучше обычный класс.
При работе со статическим руки скованы - нельзя второй экземпляр запилить для тестов или для другой части ситсемы и передать ей.


Последний раз редактировалось expl; 24.04.2013 в 17:22.
Старый 24.04.2013, 17:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Да ладно, все их так называют
Кто все? Я не называю. Статический класс не может сожержать не статических свойств, а в ас3 любой класс может

Старый 24.04.2013, 17:39
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 9  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от Bgg Посмотреть сообщение
Существует полезный совет, который помогает не париться по пустякам: решать проблемы с производительностью когда они появяться, а не до этого.
На данном этапе провожу рефакторинг. Потому стараюсь максимально больше убить подводных камней.

Добавлено через 4 минуты
Цитата:
Сообщение от expl Посмотреть сообщение

Я лично статическими классами делал:
- набор утилитарных функций
- набор констант
- подобие перечислений (enum)
- глобальную точку доступа к экземплярам других классов, которые _очень_ трудно протаскивать.
- фабрику UI-компонентов - у неё 100500 методов и всё равно этот интерфейс из 100500 методов никто реализовывать не будет, потому статика.
- глобальный набор полей, отражающих глобальное состояние системы, например в туториале.
- класс с геттерами для получения строки локализации (он, правда, автоматом генерился)
- класс с геттерами заэмбеженных ресурсов (тоже генерился автоматом)
Я точно так же делаю.

Добавлено через 6 минут
Цитата:
Сообщение от Simplifier Посмотреть сообщение
Наличие импортов не влияет на производительность. Эта инструкция служит лишь для того, чтобы однозначно идентифицировать используемые классы.
При импорте класса с статическим свойством в основе которого лежит экземпляр класса, конструктор его разве не срабатывает?

Хотя ответ уже был дан "caseyryan" - "Ну и третье, ссылка записанная в статическое поле в любом случае будет только одна. "
__________________
return this...

Старый 24.04.2013, 18:16
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 10  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
import это инструкция компилятору, при "импорте" ничего не создается и не вызывается.
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:41.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.