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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.12.2017, 18:02
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 11  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
У меня тогда наверное уже совсем наивный вопрос. А когда вообще уместно использование констант экземпляров и уместно ли? Получается, что если возникает необходимость что-нибудь "отлить в граните" даже для использования экземпляром, то проще и правильнее создать константу на уровне класса как статическую. Или нет?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Публичных? Ни разу не встречал, ибо это бессмыслица.
Константа это то, что задается один раз.
Соответственно, она не может быть разной у разных экземпляров, так как объявляется в теле Класса.
Тогда какой смысл хранить ее в экземплярах, если она не может быть индивидуальной "экземпляровской"?
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Appleman Посмотреть сообщение
У меня тогда наверное уже совсем наивный вопрос. А когда вообще уместно использование констант экземпляров и уместно ли? Получается, что если возникает необходимость что-нибудь "отлить в граните" даже для использования экземпляром, то проще и правильнее создать константу на уровне класса как статическую. Или нет?
Статические константы одни для всех экземпляров класса. Так как это константа (в английском их правда называют constant variable, и на эту тему я встречал некоторые пояснения, но не суть), значит ее значение не изменится 100%, поэтому нет никакого смысла создавать их на уровне экземпляров и бесполезно забивать ими оперативку многократно дублируя. Конечно по меркам современных, даже не компов, а телефонов, это капля в море, но все же, как по мне - это моветон и бессмыслица.

Ещё есть устверждение, что обращение к константам проиходит быстрее, чем к переменным. Я встречал такое на некоторых форумах, особенно по JS, где есть куча любителей использовать const вместо var или let там где это вообще возможно. Но как по мне, так это довольно сомнительное утверждение, и лично я использую константы всегда только как статики. А если бы в as3 были enum'ы, то использовал бы их
__________________
Ко мне можно и нужно обращаться на ты)

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

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Wolsh, caseyryan, спасибо. Исчерпывающе.

Добавлено через 1 минуту
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Тогда какой смысл хранить ее в экземплярах, если она не может быть индивидуальной "экземпляровской"?
Вот именно эта мысль и стала причиной озвученного изначально вопроса.

Старый 13.12.2017, 14:32
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 15  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Статические константы одни для всех экземпляров класса. Так как это константа … ее значение не изменится 100%
Да, именно потому что она статическая, потому что вот (см. п. 4)
__________________
Поймай яблоко 2!

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

Регистрация: Oct 2015
Сообщений: 32
Кроме того, статики выносят отдельным классом для логического объединения однотипных объектов.
Пример: в классе MouseEvent собраны события CLICK, MOUSE_OVER и тд. Затем этот класс группируется в пакет events с аналогичными классами: KeyboardEvents, TextEvent.. помимо специфичных методов и свойств, у каждого из них общий признак - хранение событийных констант.
Иначе, если хранить константы CLICK, MOUSE_OVER в классе Mouse, что логически приходит на ум, тогда мы смешиваем котлеты и мухи. Так как класс Mouse задуман для манипуляций курсором мыши, его вынесли в пакет ui, события отделяются в свою логическую группу.
Вся эта детализация приходит с возрастанием сложности проекта и построение "правильной" структуры, тоже не простая штука..

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

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

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


 


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


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