ситуации. Также полезно при инициализации сложных объектов.

хожуЭффективная Java и некоторые из моих вещей, которые я считаю стандартными, не предложены в книге, например, создание объекта, у меня сложилось впечатление, что конструкторы - лучший способ сделать это, и книги говорят, что мы должны использовать статические фабричные методы, я Я не могу использовать некоторые преимущества и недостатки, поэтому я задаю этот вопрос, вот преимущества использования.

Преимущества:

Одним из преимуществ статических фабричных методов является то, что, в отличие от конструкторов, они имеют имена.Второе преимущество статических фабричных методов состоит в том, что, в отличие от конструкторов, они не обязаны создавать новый объект каждый раз, когда они вызываются.Третье преимущество статических фабричных методов состоит в том, что, в отличие от конструкторов, они могут возвращать объект любого подтипа своего возвращаемого типа.Четвертое преимущество статических фабричных методов заключается в том, что они уменьшают многословность создания экземпляров параметризованного типа.

Недостатки:

Основным недостатком предоставления только статических фабричных методов является то, что классы без открытых или защищенных конструкторов не могут быть разделены на подклассы.Вторым недостатком статических фабричных методов является то, что их трудно отличить от других статических методов.

Ссылка: Эффективная Java, Джошуа Блох, Выпуск 2, стр. 5-10

Я не могу понять четвертое преимущество и второе неудобство и был бы признателен, если бы кто-то смог объяснить эти моменты. Я также хотел бы понять, как решить, использовать ли Constructor или Static Factory Method для создания объектов.

Ответы на вопрос(3)

Ваш ответ на вопрос