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()) # Выведет: Гав