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

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

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

Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
По умолчанию Правильно ли главный класс делать синглтоном?

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

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

Регистрация: Nov 2006
Адрес: СПб
Сообщений: 920
Отправить сообщение для FlashRus с помощью ICQ Отправить сообщение для FlashRus с помощью Skype™
А зачем?
__________________
ЛОДКИ

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Правильно - я имею в виду, является ли это хорошей практикой программирования?
Не правильно.

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Все зависит от решаемой задачи. Если вы решили, что вот в данной конкретной задаче это будет уместно и хорошо – делайте.

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

Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
Ан, нет. Не получается так сделать. Несколько часов назад разобрался с синглтоном только и ща пытался Main сделать им, не получается... Нельзя в статическую переменную сохранить ссылку на самого себя.

Добавлено через 2 минуты
Цитата:
Сообщение от FlashRus Посмотреть сообщение
А зачем?
Я хотел сделать так, чтобы не нужно было постоянно передавать ссылку на Main в другие классы.

Старый 12.04.2013, 12:29
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 6  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Цитата:
Я хотел сделать так, чтобы не нужно было постоянно передавать ссылку на Main в другие классы.
— Что-то мне подсказывает, что такая реализация весьма неправильна.

То есть я про передачу ссылки на мэйн, это неправильно.
__________________
hauts.ru

Старый 12.04.2013, 12:43
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 7  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Синглтон подразумевает однократное создание экземпляра класса, например инициализация.

Добавлено через 4 минуты
Синглтоны задуманы, в том числе, для предотвращения повторного использования при инжекциях класса как в конструктор, так и в метод куда он инжектируется

Добавлено через 17 минут
Поэтому ответ правильно ли использовать синглтон в Main зависит от ответа на вопрос:" Сколько раз ты вызываешь Main?" Ответ по-моему очевиден


Последний раз редактировалось Babylon; 12.04.2013 в 13:04.
Старый 12.04.2013, 13:29
Александр Мостовой вне форума Посмотреть профиль Отправить личное сообщение для Александр Мостовой Посетить домашнюю страницу Александр Мостовой Найти все сообщения от Александр Мостовой
  № 8  
Ответить с цитированием
Александр Мостовой
 
Аватар для Александр Мостовой

Регистрация: Sep 2001
Адрес: Харьков
Сообщений: 305
Отправить сообщение для Александр Мостовой с помощью ICQ Отправить сообщение для Александр Мостовой с помощью Skype™
Цитата:
Сообщение от zzSpirit;
Правильно - я имею в виду, является ли это хорошей практикой программирования?
В общем, сабж.
Нет, но как следствие использование других хорших практик и как искушение использовать некоторые плохие. Чаще всего Main вообще никому не нужен В любом случае способность ответить себе на вопрос зачем вам это нужно и своевременность для определенного этапа развития имхо лучше попугайства хороших практик. Поэтому что бы ответить на него, нужно узнать как были организованы ваши проекты до этого. Сделать Main синглтононом лучше получения ссылки на него через иерархию вложенности DisplayObject parent.parent, root...,но хуже более инкапсулированных решений
Цитата:
Сообщение от zzSpirit;
Нельзя в статическую переменную сохранить ссылку на самого себя.
Почему нельзя?, можно!
__________________
...


Последний раз редактировалось Александр Мостовой; 12.04.2013 в 13:39.
Старый 12.04.2013, 14:20
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 9  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Почему нельзя?, можно!
Действительно. Не понимаю чем ссылка записанная в статическую переменную отличается от ссылки записанной в переменную экземпляра.
У автора наверное была конструкция типа этой:
Код AS3:
public static var MAIN:Main = this;
Само собой это работать не будет. Во время вызова статического инициализатора, экземпляра еще не существует. Соответственно сразу на this сослаться нельзя. Но можно в конструкторе произвести присвоение.

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

Регистрация: Jan 2009
Сообщений: 1,651
Я в конструкторе инициализирую статичесскую ссылку на Main. И делаю то же самое для большинства классов, которые у меня гарантированно должны быть в программе в одном экземпляре и которые не получается сделать полностью статическими.
Не знаю, я считаю, что все что удобно и комфортно для работы - все правильно. А Main.instance.stage.addChild(x) довольно удобно.
__________________
мой пустой блог

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

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

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


 


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


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