Сколько экземпляров одного класса можно создавать?
как думаешь, бывают ли ситуации, когда нужно иметь два подключения в скрипте к двум разным базам? 
по моему, такая ситуация вполне реальна
сл-но делать одиночкой класс для работы с субд - не правильно
Несмотря на то, что синглтон является антипаттерном - он незаменим в разработке.
Конкретно в этом случае, схема такая:
- в синглтоне хранится соединение с базой данных = DbConnection
- querybuilder создается новые объекты себя, но использует DbConnection