Встречается на собеседованиях • сегодня

Как реализуешь паттерн Фабрика Factory

Фабрика (Factory) — это порождающий паттерн, который делегирует создание объектов подклассам. В Python можно реализовать несколькими способами:

  1. Простая фабрика (не полноценный паттерн, но часто используется):
python
class Dog:
    def speak(self):
        return "Woof!"

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

def get_pet(pet="dog"):
    pets = dict(dog=Dog(), cat=Cat())
    return pets[pet]
  1. Фабричный метод (создание через подклассы):
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):
pass

class DogFactory(AnimalFactory):
def create_animal(self):
return Dog()

class CatFactory(AnimalFactory):
def create_animal(self):
return Cat()

text

3. **Абстрактная фабрика** (создание семейств объектов):
```python
class PetFood:
    pass

class DogFood(PetFood):
    pass

class CatFood(PetFood):
    pass

class AbstractFactory(ABC):
    @abstractmethod
    def create_pet(self):
        pass
    
    @abstractmethod
    def create_food(self):
        pass

class DogFactory(AbstractFactory):
    def create_pet(self):
        return Dog()
    
    def create_food(self):
        return DogFood()

Основные преимущества: инкапсуляция логики создания, гибкость, соблюдение SRP.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы