Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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