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

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

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

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

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

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

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