Sobes.tech
Junior — Middle
66

Какова основная роль и применение паттерна Factory в разработке программного обеспечения?

Answer from AI

sobes.tech AI

Паттерн Factory служит для создания объектов без необходимости указывать конкретный класс создаваемого объекта напрямую. Это позволяет отделить логику создания объектов от их использования, что повышает гибкость и расширяемость кода.

Основная роль:

  • Инкапсуляция процесса создания объектов.
  • Позволяет создавать объекты разных классов, реализующих общий интерфейс, в зависимости от условий.
  • Упрощает добавление новых типов объектов без изменения клиентского кода.

Пример на Python:

class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

class AnimalFactory:
    @staticmethod
    def create_animal(animal_type):
        if animal_type == "dog":
            return Dog()
        elif animal_type == "cat":
            return Cat()
        else:
            raise ValueError("Unknown animal type")

# Использование
animal = AnimalFactory.create_animal("dog")
print(animal.speak())  # Выведет: Woof!

Таким образом, Factory упрощает управление созданием объектов и делает код более поддерживаемым.