Каковы недостатки использования класса базы данных PHP в качестве одноэлементного ?
Недостатки такие же, как для любого класса, который использует шаблон Singleton:
Если ваш класс DB построен только для подключения к одной базе данных, у вас возникнут проблемы, если у вас есть сценарий, который необходимо подключить к двум двум отдельным базам данных. Тем не менее, вы можете создать класс singleton для принятия нескольких конфигураций серверов, а затем управлять ими в синглетоне.
В противном случае, создание класса базы данных в качестве одноэлементного – это практика, которая имеет большой смысл, поскольку вы можете поддерживать жесткий контроль над количеством подключений, которые создает скрипт в любой момент времени.
Вы не можете использовать два подключения к базе данных. Вы хотели бы этого, потому что:
Это затрудняет выполнение модульных тестов против него, а также делает невозможным наличие нескольких соединений с базой данных. Как мы все знаем, глобальные переменные имеют множество недостатков, и Singletons не являются исключением, только то, что они являются более «дружественной» глобальной переменной.
Я нашел довольно хорошую статью об этом и старый вопрос .