Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Правильно ли главный класс делать синглтоном? (http://www.flasher.ru/forum/showthread.php?t=197745)

zzSpirit 12.04.2013 11:29

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

FlashRus 12.04.2013 11:42

А зачем?

caseyryan 12.04.2013 11:46

Цитата:

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

bav 12.04.2013 11:46

Все зависит от решаемой задачи. Если вы решили, что вот в данной конкретной задаче это будет уместно и хорошо – делайте.

zzSpirit 12.04.2013 12:25

Ан, нет. Не получается так сделать. Несколько часов назад разобрался с синглтоном только и ща пытался Main сделать им, не получается... Нельзя в статическую переменную сохранить ссылку на самого себя.

Добавлено через 2 минуты
Цитата:

Сообщение от FlashRus (Сообщение 1129441)
А зачем?

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

Hauts 12.04.2013 12:29

Цитата:

Я хотел сделать так, чтобы не нужно было постоянно передавать ссылку на Main в другие классы.
— Что-то мне подсказывает, что такая реализация весьма неправильна.

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

Babylon 12.04.2013 12:43

Синглтон подразумевает однократное создание экземпляра класса, например инициализация.

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

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

Александр Мостовой 12.04.2013 13:29

Цитата:

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

Нет, но как следствие использование других хорших практик и как искушение использовать некоторые плохие. Чаще всего Main вообще никому не нужен :) В любом случае способность ответить себе на вопрос зачем вам это нужно и своевременность для определенного этапа развития имхо лучше попугайства хороших практик. Поэтому что бы ответить на него, нужно узнать как были организованы ваши проекты до этого. Сделать Main синглтононом лучше получения ссылки на него через иерархию вложенности DisplayObject parent.parent, root...,но хуже более инкапсулированных решений
Цитата:

Сообщение от zzSpirit;
Нельзя в статическую переменную сохранить ссылку на самого себя.

Почему нельзя?, можно!

caseyryan 12.04.2013 14:20

Цитата:

Почему нельзя?, можно!
Действительно. Не понимаю чем ссылка записанная в статическую переменную отличается от ссылки записанной в переменную экземпляра.
У автора наверное была конструкция типа этой:
Код AS3:

public static var MAIN:Main = this;

Само собой это работать не будет. Во время вызова статического инициализатора, экземпляра еще не существует. Соответственно сразу на this сослаться нельзя. Но можно в конструкторе произвести присвоение.

iflamberg 12.04.2013 15:35

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


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

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