Sobes.tech
Назад к вопросам
Junior — Middle
84

Какова основная функция паттерна Factory в объектно-ориентированном программировании?

Компании, где спрашивали
Sogwell

Ответ от нейросети

sobes.tech AI

Паттерн Factory в объектно-ориентированном программировании предназначен для создания объектов без необходимости указывать конкретный класс создаваемого объекта напрямую. Его основная функция — инкапсуляция логики создания объектов, что позволяет:

  • Избавиться от жесткой зависимости кода от конкретных классов.
  • Упростить расширение и поддержку кода (например, добавление новых типов объектов).
  • Централизовать создание объектов, что улучшает читаемость и управляемость.

Пример простого Factory на Java:

interface Animal {
    void speak();
}

class Dog implements Animal {
    public void speak() { System.out.println("Woof"); }
}

class Cat implements Animal {
    public void speak() { System.out.println("Meow"); }
}

class AnimalFactory {
    public static Animal createAnimal(String type) {
        if ("dog".equalsIgnoreCase(type)) return new Dog();
        else if ("cat".equalsIgnoreCase(type)) return new Cat();
        else throw new IllegalArgumentException("Unknown animal type");
    }
}

// Использование:
Animal animal = AnimalFactory.createAnimal("dog");
animal.speak(); // Выведет: Woof