Найти в Дзене

Singletone и его тайна

Давайте поговорим о Singletone. Почему его считают антипаттенном, где его используют и что с этой информацией делать.

1. Сделали приватным конструктор, чтобы не могли вызвать его.

Таким образом:

$a = new Singletone() - не сработает!

А как же обратиться к нашему классу?

А вот так:

$a = Singletone::getInstance();

Идея какая. Мы один раз инициировали класс и дальше из любого куска кода можем использовать. И переопределить не можем, а только считывать данные, ведь нам не нужно на каждый чих переподключаться к БД!

Но

1. Static - не является ООП.

2. Singletone - это фактически глобальная переменная, которая отовсюду доступна, что не есть хорошо.

Где можно использовать:

1. подключение к БД

2. конфиги получить

3. логгирование