Зачем newInstаnce вместо конструктора? В книжках встретил такой подход, вместо конструктора используется статический метод, который возвращает экземпляр класса.class Class1 {
public static Class1 newInstance() {
return new Class1();
}
}
Подозреваю, что это какой-то паттерн проектирования? Зачем так делать? Что такой подход даёт?
Посоветуйте толковую книгу по этому вопросу (только не с безумной бабой на обложке).

21 Авг 2019 в 06:59
238 +1
0
Ответы
1

Да, использование статического метода newInstance() вместо конструктора - это пример шаблона проектирования Factory Method. Этот шаблон позволяет создавать объекты определенного класса, не указывая их конкретный тип внутри кода, что повышает гибкость и упрощает изменение и добавление новых типов объектов.

Преимущества использования newInstance() вместо конструктора:

Может быть реализована логика создания объекта сложного типа, которая не уместится в конструкторе.Позволяет возвращать отличные от объектов экземпляры класса, например, кэшированные или переиспользованные объекты.Упрощает тестирование, поскольку можно создавать замоканные объекты или объекты с заранее заданным состоянием.

Книга, которую я бы порекомендовала по этому вопросу, это "Приемы объектно-ориентированного проектирования. Паттерны проектирования" авторов Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса. В ней приводится подробное описание различных паттернов проектирования, включая Factory Method, их назначения и применения.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир