Цитата:
|
Сообщение от WindWalker
Вот ситуация, когда Одиночка нужен именно как Одиночка.
Для создания объекта B нам необходимо, чтобы уже существовал объект A.
Например, B создаётся с помощью A. Либо между ними есть какая-то связь, которая должна быть прописана сразу в момент создания.
Конкретика не важна, главное, что для создания B обязательно требуется, чтобы уже существовал A.
Но и для объекта C тоже необходимо существование A, причём того же самого. А ещё для D и E.
И создание объектов B, C, D и E раскидано по разным классам. Причём заранее неизвестно, в каком именно порядке они будут создаваться в процессе выполнения.
Вот тут-то как раз и надо, что A был Одиночкой. Когда он требуется в первый раз - создаётся. Когда требуется снова - используется уже созданный объект.
Хороший пример такой ситуации пока привести не могу. Пока есть только неудачный пример и поэтому я его приводить не буду 
|
Терпеть немогу абстрактные рассуждения. Когда ты понимаешь о чем говоришь, ты сможешь объяснить на пальцах своей 70-ти летней бабушке суть и принципы концепции. Прочитал 9 страниц темы и так и не нашел конкретной, годной проблемы, где синглтон был-бы максимально уместен и его применение обуславливалось не "а я паттерны знаю!" а логичным и интуитивно понятныи решением. Насколько я помню в Cairngorm используется сингтон. Там он используется для удобства организации приложения и именно для глобального доступа к необходимой информации. Приведу пример как я это понимаю: Есть магазин. Есть у пользователья шопинг карт. Нам необходимо гарантировать, что шопинг карт у пользователя один, т.к. в других случаях может случится жестокий конфуз. Глобальный доступ при этом будет крайне удобен и почему это относят к минусам непонятно. Никаких классов B C D E F G, для которых необходим класс A, наследованный от подкласса Z.. заметьте.