![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
WindWalker получает плюс. Холивар холиваром, а на личности переходить нельзя.
|
|
|||||
|
Цитата:
А насчет использования/неиспользования... Врядли кто-то будет возражать что для некоторых целей это очень удобная штука, и как и в любом патерне, в нем есть как плюсы так и минусы. А идеальное еще не изобрели все равно . |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
Нет косяков у тебя. Но предложенный тобой вариант есть в обсуждении синглтона: http://yarovoy.com/2007/10/24/single...ctionscript_3/
Там-же к коментах есть и мой: С подробным описанием того, какие недостатки других синглетонов в нем устранены.
__________________
http://realaxy.com |
|
|||||
|
стервочка (я мужик)
|
абсолютно неудобная. если она используется больше чем в одном месте.
|
|
|||||
|
Iv, спасибо за разъяснения.
Еще два вопроса. 1) Какой-нибудь конкретный пример "правильного" применения синглтона в АС3 2) Присоединяюсь к Цитата:
__________________
Сам себе репортер |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
terbooter,
ситуация такова, что это очень сильно зависит от контекста. Если ты делаешь баннер, то там можешь вообще всё реализовывать через синглтоны не задумываясь. Если ты пишешь реюзабельный код, то довольно трудно сказать где синглетон будет незаменим. Примеы: Сокет-коннектор. приложение устанавливает сокет-соединение с сервером. Из разных частей приложения вызываются команды коннектора. Команды организуются в очередь FIFO и производится контроль ответов сервера. В этой ситуации синглетон - верное решение. Его задачи - не дать ошибиться программеру случайно создав второй экземпляр и не производить постоянную проверку на наличие коннектора перед вызовом его метода. Библиотека кэшированных изображений. В приложении часто используются одинаковые подгружаемые картинки (например иконки папок и файлов в меню). Существенного ускорения доступа можно достигнуть используя внутреннее кэширование. Для этого организуется библиотека-синглетон, которая при запросе картинки проверяет ее наличие в кэше и т.д. Как видите, синглетон (он переводится как одиночка) - это такой класс, у которого может быть один и только один экземпляр. Его одиночество как проверочное действие: если теоретически может быть несколько экземпляров, то это не синглетон.
__________________
http://realaxy.com |
|
|||||
|
стервочка (я мужик)
|
Цитата:
Цитата:
|
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Вот бредятина-то.
Вместо одного "пусть неправильно зато писать мало" предлагается "ещё более неправильно, зато писать ещё меньше". |
|
|||||
|
Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
|
BlooDHounD,
собственно в рассуждениях ты допускаешь типичную ошибку трактовки синглетона. Метод доступа к данным (статические методы или через экземпляр полученный через getInstance) значения не имеют. Ты пытаешься оценивать синглетон в качестве способа глобального доступа, что в корне неверно. Синглетон не для этого предназначен. Ну как сравнивать молоток с микроскопом. В принципе, у синглетона может и не быть метода getInstance (или он может быть приватным) и у экземпляра такого класса снаружи не будет торчать ни одного публичного метода экземпляра. Только статики, перенаправляющие задачи на экземпляр. Синглетон же обеспечивает наличие единственного и неповторимого экземпляра класса, с помощью которого выполняются конкретные действия.
__________________
http://realaxy.com |
|
|||||
|
[+1 18.03.08]
Регистрация: Nov 2006
Сообщений: 223
|
Хмм... А если тогда реализовать Синглтон следующим образом:
Делаем публичный класс-обёртку и скрытый класс-синглтон, который непосредственно и содержит весь функционал. Класс-обёртка выполнение всех методов делигирует синглтону. Конструктор никоем образом не прячем - пускай создаются несколько обёрток (или лучше назвать розетками или гейтами?), всё равно работать у нас будет в итоге единственный экземпляр. Сейчас попробую это в виде кода оформить... |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:17. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|