Зачем newInstаnce вместо конструктора? В книжках встретил такой подход, вместо конструктора используется статический метод, который возвращает экземпляр класса.class Class1 { public static Class1 newInstance() { return new Class1(); } } Подозреваю, что это какой-то паттерн проектирования? Зачем так делать? Что такой подход даёт? Посоветуйте толковую книгу по этому вопросу (только не с безумной бабой на обложке).
Да, использование статического метода newInstance() вместо конструктора - это пример шаблона проектирования Factory Method. Этот шаблон позволяет создавать объекты определенного класса, не указывая их конкретный тип внутри кода, что повышает гибкость и упрощает изменение и добавление новых типов объектов.
Преимущества использования newInstance() вместо конструктора:
Может быть реализована логика создания объекта сложного типа, которая не уместится в конструкторе.Позволяет возвращать отличные от объектов экземпляры класса, например, кэшированные или переиспользованные объекты.Упрощает тестирование, поскольку можно создавать замоканные объекты или объекты с заранее заданным состоянием.
Книга, которую я бы порекомендовала по этому вопросу, это "Приемы объектно-ориентированного проектирования. Паттерны проектирования" авторов Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса. В ней приводится подробное описание различных паттернов проектирования, включая Factory Method, их назначения и применения.
Да, использование статического метода newInstance() вместо конструктора - это пример шаблона проектирования Factory Method. Этот шаблон позволяет создавать объекты определенного класса, не указывая их конкретный тип внутри кода, что повышает гибкость и упрощает изменение и добавление новых типов объектов.
Преимущества использования newInstance() вместо конструктора:
Может быть реализована логика создания объекта сложного типа, которая не уместится в конструкторе.Позволяет возвращать отличные от объектов экземпляры класса, например, кэшированные или переиспользованные объекты.Упрощает тестирование, поскольку можно создавать замоканные объекты или объекты с заранее заданным состоянием.Книга, которую я бы порекомендовала по этому вопросу, это "Приемы объектно-ориентированного проектирования. Паттерны проектирования" авторов Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса. В ней приводится подробное описание различных паттернов проектирования, включая Factory Method, их назначения и применения.