Показать сообщение отдельно
Старый 02.01.2011, 22:17
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 19  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
Никто не предлагает лепить все статикой. Но иногда это удобно.
Я тоже так говорил на вопрос "нафига ты этот сервис статикой сделал?"

Не, я сам юзаю статику для фабрик контролов, фабрик стилей текстовых полей, для общих, ни от чего не зависящих алгоритмов - пока полёт нормальный (не огреб ещё с ними )

Цитата:
Так а зачем тогда синглтон?
В смысле, чем он отличается от обычного класса?
Если есть возможность использовать обычный класс вместо сингтона - нечего и думать - используй обычный - его и тестировать проще и логика яснее и расширять систему удобнее.
Забыл совсем: есть исключение: классы-стратегии можно сделать синглтонами, чтобы не создавать их каждый раз (но это касается только классов без состояния)

А контроль рождаемости - это защита от почесывания правого уха левой пяткой - только лишнее ограничение в коде. Бывало просто: "А теперь нам нужен второй сервис - чисто для ..., т.к. чтобы ... работало надо на другой сервер ходить" - и понеслось:
- перед использованием синглтона лепим флаг "использовать особый сервис"
- лепим внутрь ветку if-а, которая меняет url-ки к которым класс должен обращаться;
- поиспользовали - надо вернуть флаг обратно - чтобы приложение работало
Веселье еще то.
(и при этом всём надеемся, что пока синглтон работает с этими настройками к нему не обратятся другие части приложения, считая, что он настроен по-дефолту)


Последний раз редактировалось expl; 02.01.2011 в 22:38.