![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
в чем смысл наличия флага isConstructing?
|
|
|||||
|
Цитата:
В конструкторе стоит её проверка, которая выдает ошибку при попытке создать экземпляр класса public function MySingleton() { if (!_isConstructing) throw new Error("Singleton, use MySingleton.instance"); } причем данная операция выполняется только если переменная _instance не определена, если же экземпляр уже был создан, т1о мы просто возвращаем его, не трогая переменную _isConstructing, которая по прежнему, пребывая в false, ограничивает создание экземпляра данного класса извне.
__________________
while(live()) { hope(); } |
|
|||||
|
Если в описаний класса указано что он - синглтон, а кто-то всё равно пытается использовать его как-то иначе, то этому человеку уже ничего не поможет..
Я просто хочу сказать, что "защита от дурака" должна быть уместна. Она должна быть только там, где действительно может быть допущена ошибка. Реальная, а не гипотетическая.
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
|
Цитата:
|
|
|||||
|
Цитата:
Добавлено через 2 минуты Цитата:
не получится. Соответственно, флаг обеспечивает невозможность сделать где-нибудь в коде
__________________
while(live()) { hope(); } |
|
|||||
|
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
|
Цитата:
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
Цитата:
обычно делают так: и никакие флаги не нужны Последний раз редактировалось undefined; 27.11.2017 в 18:35. |
|
|||||
|
дык я ж написал. Чтобы нельзя было создать инстанс извне
__________________
while(live()) { hope(); } |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
ну так сам факт, что в _instance что-то сидит достаточно чтоб кидать ошибку.Зачем флаги еще какие-то?
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,283
|
а блин, это я с жавой попутал)
но все равно наличие флага избыточно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:00. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|