Я просматривал эффективный пункт 1 java, где обсуждается «Статический метод фабрики против конструкторов» для создания объекта. Одним из упомянутых недостатков является следующее:
«Основной недостаток предоставления только статических фабричных методов заключается в том, что классы без общедоступных или защищенных конструкторов не могут быть подклассами».
Также упоминается, что это хорошо, поскольку способствует наследованию композиции объектов. Однако разве это не серьезное ограничение, когда вы действительно хотите получить наследство? Почему я должен предпочесть статические фабричные методы для создания объектов, если я заранее не знаю, будет ли расширяться класс или нет?