Сокрытие всех общедоступных конструкторов - это метод, используемый для предотвращения создания подклассов и принуждения разработчиков использовать класс по назначению. Возможно, разработчик хочет, чтобы вы использовали Адаптер или Фасад или даже Прокси во время расширения.
В конструкторе могут содержаться важные подробности жизненного цикла, которые требуют использования в соответствии с намерением исходного разработчика, или это может быть упущение разработчика.
Я видел попытки преобразования в шаблон Factory, где это делается способом, который предотвращает создание подклассов. То есть нет защищенного конструктора, доступного для подклассов. Иногда расширенные шаблоны объектов могут напрячь встроенные возможности языка.