Какие паттерны проектирования используются для создания объектов в Java?

«Какие паттерны проектирования используются для создания объектов в Java?» — вопрос из категории Паттерны, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Помимо прямого вызова конструктора (new), существуют специализированные паттерны создания:

  1. Factory Method — делегирует создание экземпляра подклассам или статическому методу.
    Calendar cal = Calendar.getInstance(); // Возвращает экземпляр конкретного календаря
  2. Abstract Factory — создает семейства связанных объектов.
  3. Builder — пошаговое создание сложных объектов с множеством параметров.
    Person person = new Person.Builder()
        .name("John")
        .age(30)
        .build();
  4. Singleton — гарантирует существование только одного экземпляра класса.
    Runtime runtime = Runtime.getRuntime();
  5. Prototype — создание объекта путем клонирования существующего прототипа.
    Sheep dolly = (Sheep) originalSheep.clone();

Также важно: Dependency Injection (внедрение зависимостей), реализуемый фреймворками вроде Spring, который является более высокоуровневым принципом управления созданием и связыванием объектов.