Sobes.tech
Back to questions
Junior — Middle
60

Можете объяснить суть паттерна 'Фабрика' и в чем его основные преимущества?

Companies where asked
БилайнБилайн

Answer from AI

sobes.tech AI

Паттерн "Фабрика" (Factory) — это порождающий паттерн проектирования, который предоставляет интерфейс для создания объектов, но позволяет подклассам решать, какой класс инстанцировать. То есть создание объектов делегируется отдельному методу или классу.

Основные преимущества:

  • Позволяет создавать объекты без указания конкретных классов, что повышает гибкость и расширяемость кода.
  • Упрощает замену и добавление новых типов объектов без изменения клиентского кода.
  • Снижает связанность между классами, улучшая поддержку и тестирование.

Пример на Python:

class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Гав"

class Cat(Animal):
    def speak(self):
        return "Мяу"

class AnimalFactory:
    @staticmethod
    def create_animal(animal_type):
        if animal_type == "dog":
            return Dog()
        elif animal_type == "cat":
            return Cat()
        else:
            raise ValueError("Неизвестный тип животного")

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