![]() |
Синглтон :) АС3 возможно?
Будет ли этот код соответсвовать аналогичному коду в Java?
т.е. будет ли создаватся только один екземпляр данного класса? Или у АС3 свои правила написания синглтона? Код:
package kos.util{ |
Так нельзя. В флексе есть пути обхода для синглтонов.
Приватные конструкторы запрещены. |
А без использования флекса?
А если сделать конструктор пабликом но сознательно его не вызывать? |
Цитата:
Код:
package com.seeqpod.services |
Спасибо, это лишнее. Если достаточно просто не обращатся к конструктору напрямую, это будет в самый раз.
|
|
Спасибо
|
с локом странный пример :)
зачем лок, если можно проверяеть есть ли экземпляр? Кстати генерация ошибки не всегда нужна. Например SharedObject не генерит ошибки, хотя синглтон :) Код:
package { |
Цитата:
Пример с локом легко трансформируется в Multiton. |
извините :) не знал :) один фиг лок лишний.
|
как это так лок лишний? при синглетоне вообще не должно существовать возможности создать больше одного экземпляра, а в приведенном примере через конструктор их можно создавать сколько угодно, при этом в случае синглетона вообще создать через конструктор экземпляр вне класса не возможно. Но опять же это все справедливо если вы хотите реализовать синглетон в чистом виде.
ЗЫ: еще не понял как геттер может принимать параметры, видимо опечатка? |
Либо параметр лишний, либо getInstance должно быть.
|
Сорри если оффтоп, но че так все носятся с этим синглтоном?
|
А он самый простой из паттернов =) и позволяет знающему его заявлять о своей мегакомпетентности =)
|
Аааа. Лишняя строчка к резюме это гут =)
|
ну так мне кто-нить объяснит зачем нужен лок?
|
Код:
var singleton:SingletonExample = new SingletonExample(); |
вы издеваетесь? я ниразу не видел что бы использовался лок.
Код:
package { |
1. Если интстанс ещё не создан, то создать обьект данного класса через конструктор возможно? Зачем?
2. Какой смысл в данном примере писать super() в конструкторе? 3. Зачем ретурн после throw... 4. Вообще какой ретурн в кострукторе о.О 5. В getInstance очень часто требуется передаь параметры, при такой записи вроде бы это не возможно? Я так осторожно выражаюсь :) Но с точки зрения меня как жависта этот пример полная херня :) |
2BloodHoud: а ты попробуй создать экземпляр своего класса до обращения к геттеру
ЗЫ: А super() в данном пример будет генерить ошибку |
1. Можно инициализировать раньше любого кода и тогда создавать новые экземпляры нельзя будет;
2. Можно не писать, если не хочется; 3. Артефакт от кода Nirth-а; 4. А что смущает? Выполнили часть конструктора и хорош; 5. геттер или метод *— это зависит от конкретной задачи. vooparker, какую ошибку? |
Цитата:
Код:
private static var _instance:SingletonExample = new SingletonExample();Цитата:
Цитата:
|
Вообще чем руководствовались разработчики ас3 добавляя фичу, запрещающую делать конструкторы приватными :)
В мою голову не укладывается, зачем это было нужно и какие подводные камни может вызвать приватный конструктор. Если уж сдирать всё с жавы, так сдирать целиком :) Имхо. Цитата:
|
vooparker, а, ты про это. Я думал про другое =)
Artureg, следование стандартам ECMAScript, надо полагать. |
Цитата:
http://kuwamoto.org/2006/04/05/as3-o...d-constructors |
Ну ппц, конечно :) лучше запретить приватные конструкторы и перегрузку чем доработать систему классов.
Оказывается АС3 ещё очень сырой, и его будут дорабатывать, глядишь через год можно будет делать человеческие синглтоны :) |
Цитата:
|
Судя по тому что написано под ссылкой товарища vooparker разработчики ЕСМА подозревают о том что во всём цивилизованом мире приватные конструкторы существуют, но внедрить эту фичу в свой стандарт им не позволило время и религия. Но они обещаются доработать ЕСМУ :)
|
Artureg, аватар у BlooDHounD на этом форуме фирменный вообще-то :D
|
Так и знал что заметят :))
Я перересовал этот аватар 2,5 года назад :) Могу доказать :) |
Цитата:
Не суть, просто не стоит допускать путаницы, BlooDHounD носит этот аватар уже очень давно. |
А я точно вспомнил когда создавал :)
Оке сменю :) нет проблем) |
| Часовой пояс GMT +4, время: 01:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.