![]() |
Реализация шаблона singleton в AS3
Посмотрите пожалуйста код. Вы используйте в своем коде шаблон "одиночка" или делаете это как-то подругому?
т.е. это объект, который (по-хорошему) может быть интсанциирован только один раз через метод getInstance() Код:
public class RegistrationManagerProxy { |
Ваш класс не должен компилироваться, конструкторы обязаны быть public. Я просто делаю у конструкртора обязательный аргумент типа, который может быть найден только в классе находящемся в одном файле с "одиночкой", но это одно из решений. А вообще, можно поискать по форуму, пару месяцев назад была дискуссия на эту тему с массой примеров.
|
|
BloodHound >> Давно стало интересно, может ты сможешь объяснить. В чем необходимость использования подобной конструкции ("одиночка")??
Сколько не думал, так и не нашел применения... |
ulik, не понял :) это вопрос ко мне? или моя цитата?
|
Это вопрос к тебе :)
|
ulik, честно? это на столько редкая необходимость, что у нас в проектах пока что нигде не пригодилась. в основном мы используем мультитон. даже адоба почему-то не стала делать синлтон из всем известного класса ExternalInterface.
почему ExternalInterface должен быть всегда один? потому что контэйнер у флэшки всегда один. пример ХТМЛ-страница. пример использования синглтона такой: 1. допустим есть некий интерфейс IConnection, который объеденяет в некое множество классов. и ExternalInterface один из них. Код:
public final class ExternalInterface implements IConnection {Код:
public final class ExternalInterface extends EventDispatcher {1. колбэк тоже должен быть единсвенный, поэтому наследование от диспатчера не нужно. 2. имплементация интерфейса тоже не нужна. так как его не с чем объеденять. ShareObject - вполне заслуженный мульти тон. резюме по поводу данного топика: тут синглтон даже близко не нужен. |
Угу. Спасибо. Просто я уже не раз видел "обсуждение сингла" и даже пробовал сделать "тест" проект, чтобы его задействовать, но так и не смог найти именно тот случай, где нужен "класс-сингл". Да и на моем опыте не было пока необходимости в подобном. Другое дело - мультитон. Тут проще :)
|
Вот, на мой взгляд, уместная реализация синглтона. Почему именно синглтон? - потому, что он общается не напрямую с получателем/отправителем информации, а через менеджер. У менеджера есть еще около 7-8 вариантов получения внешней информации, которая должна выглядеть одинаково для получателей. Т.е. в данном случае я посылаю картинки, но, я могу те же картинки получить не из сокета, а просто загрузив с диска или распарсив информацию получаемую из другого URLStream'a и т.п. получателей информации может быть неопределенное количество, сокет может сменить порт и ИП в процессе работы, но получателя информации это не должно волновать - поэтому менеджер создает его 1 раз и на всегда.
(упрощенный вариант) Код:
/** |
wvxvw, а что с английским? :)
|
| Часовой пояс GMT +4, время: 21:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.