↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
StragaSevera
10 августа 2019
Aa Aa
#айтишный_быт
#очевидное_и_вероятное
Объект, который может и должен существовать лишь в единственном экземпляре - еще не синглтон.
Синглтон - это объект, единственный экземпляр которого можно дернуть откуда угодно в программе.
В этом плане синглтон ничем не отличается от, скажем, объектов из некоторого объектного пула, всегда доступных по статическому методу.
10 августа 2019
7 комментариев
Singleton — даже из названия паттерна видно, что область видимости не играет никакой роли. Если у меня в одном синглтоне (или обычном классе) есть внутренний приватный синглтон — он перестаёт быть синглтоном, что ли?
Styx
В том-то и дело, что название слишком misleading.
Разумеется, перестает. Ты еще скажи, что простой объект, создающийся ровно один раз, автоматически становится синглтоном, а чтобы он не был синглтоном, нужно создать его вторую копию.
StragaSevera, так, давай более предметно. Синглтон — это паттерн, а не какой-то мифический объект. Утрированно, если у класса скрыт конструктор, но выставлен некий getInstance(), и этот класс гарантированно под капотом вызовет свой конструктор лишь однажды, независимо от кол-ва вызовов getInstance() — это синглтон. Все остальное, описанное тобой в посте, роли не играет.
Styx
Спасибо, товарищ, вот ваша капитанская фуражка.
The point is: что в паттерне "синглтон" важнее, тот факт, что выставлен доступный отовсюду getInstance, или тот факт, что он выдает один и тот же объект, а не разные? Я полагаю, что первое.
StragaSevera, блин, а я хотел кораблик :(
В паттерне нет понятия важности, он просто есть. Это же не паттерн использования, а паттерн проектирования. Будет ли он доступен глобально, или нет — решать тебе, в каждой конкретной задаче. Просто обычно он доступен глобально, но это не является его определяющим свойством.
Хотя, я немного неправ, таки является:
An implementation of the singleton pattern must:

* ensure that only one instance of the singleton class ever exists; and
* provide global access to that instance.
Styx
Увы, на кораблик ты еще не накапитанствовал ;-)
Давай не буквоедствовать. Можно сказать "важность в использовании паттерна" - неважно, главную суть мы оба поняли.
ПОИСК
ФАНФИКОВ









Закрыть
Закрыть
Закрыть