Какие знаешь порождающие паттерны проектирования
Фабричный метод (Factory Method) – это порождающий паттерн, который определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Позволяет делегировать создание объектов подклассам, обеспечивая гибкость и расширяемость кода.
Пример на Python:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class AnimalFactory(ABC):
@abstractmethod
def create_animal(self) -> Animal:
pass
class DogFactory(AnimalFactory):
def create_animal(self) -> Animal:
return Dog()
class CatFactory(AnimalFactory):
def create_animal(self) -> Animal:
return Cat()
Использование
dog_factory = DogFactory()
dog = dog_factory.create_animal()
print(dog.speak()) # Вывод: Woof!
**Преимущества:**
- Избавляет от привязки к конкретным классам
- Упрощает добавление новых типов объектов
- Соблюдает принцип открытости/закрытости (OCP)
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру