Ответ
Помимо прямого вызова конструктора (new), существуют специализированные паттерны создания:
- Factory Method — делегирует создание экземпляра подклассам или статическому методу.
Calendar cal = Calendar.getInstance(); // Возвращает экземпляр конкретного календаря - Abstract Factory — создает семейства связанных объектов.
- Builder — пошаговое создание сложных объектов с множеством параметров.
Person person = new Person.Builder() .name("John") .age(30) .build(); - Singleton — гарантирует существование только одного экземпляра класса.
Runtime runtime = Runtime.getRuntime(); - Prototype — создание объекта путем клонирования существующего прототипа.
Sheep dolly = (Sheep) originalSheep.clone();
Также важно: Dependency Injection (внедрение зависимостей), реализуемый фреймворками вроде Spring, который является более высокоуровневым принципом управления созданием и связыванием объектов.