Если Вы глянете на сайте самого РНР, в той части где написано про патерн
Синглтон увидите
красным цветом предупреждение:
Внимание
Паттерн Синглтон является одним из наиболее противоречивых паттернов.
---
Поверьте, я очень много перечитал всяческих материалов и видел множество примеров реализации. Но что интересно, ИМЕННО ПРИМЕРОВ, практической реализации, где синглтон действительно был нужен, я почти не видел.
---
Вопрос:
Кто нибудь мне может доказать, что патерн синглтон имеет право на жизнь, или это отстой, который кроме как для развлечения и упражнения для мозга не имеют никакой практической ценности.
В нашем холиваре я буду оппонентом, который будет доказывать, что синглтон не нужен, вы доказывайте НА ПРАКТИЧЕСКОМ ПРИМЕРЕ моменты, где он действительно нужен. и будем подсчитывать результат. Докажу свою правоту я - мне балл, докажете Вы - вам балл.
Счет:
Аффтар: 1
Оппоненты: 0
AlkatraZ (24.12.2011/21:10)
В нашем холиваре я буду оппонентом, который будет доказывать, что синглтон не нужен, вы доказывайте НА ПРАКТИЧЕСКОМ ПРИМЕРЕ моменты, где он действительно нужен. и будем подсчитывать результат.
Атлична! С кем будим спорить?
L!MP (24.12.2011/21:19)
Атлична! С кем будим спорить?
Со мной гг.
В первую очередь хотелось "ударов" от тебя, как от любителя синглтонов гг
Vynderkind (24.12.2011/21:20)
что это такое?
Одно извращение от американских гуру программирования.
AlkatraZ, Да я в курсе всех минусов синглтонов
Использовал их (именно в прошедшем времени) потому что это самое легкореализуемое и понятное решенее проблемы обеспечить глобальную доступность "звёздных" обьектов.
Справедливости ради, я использовал его в тех классах которые действительно должны быть в едином экземпляре (запрос/ответ приложения, конфигурация).
L!MP (24.12.2011/21:27)
AlkatraZ, Да я в курсе всех минусов синглтонов
Что интересно, в большинстве случаев, и модное слово "фабрика" тоже можно было оспорить, ибо реально нужно очень редко, а я лично вообще стараюсь этого избегать. Фабрика наследует большинство деццких болезней Синглтона.
1) Фабрика - статический класс, который на выходе передает тебе объект.
2) Этот объект останется в памяти до конца выполнения скрипта, то есть, ты не можешь сделать unset(объект класса) если он тебе больше не нужен и ты хочешь очистить память.
---
Да, но первый +1 я уже заработал гг
Где Газеновский вариант со счетчиком "Мине.. ну вы поняли"
AlkatraZ, Впринципе все обвинения инкреминируемые синглтону справедливы и для любой статики.
А высвободить память от обьекта в синглтоне (ибо статика работает в контексте класса, а не обьекта) можно так: self::$_instance = null;