Sobes.tech
Назад к вопросам
Junior — Middle
58

В каких случаях и для каких задач применяют паттерн Factory Method?

Компании, где спрашивали
ArendadataArendadata

Ответ от нейросети

sobes.tech AI

Паттерн Factory Method используется для создания объектов без указания конкретного класса создаваемого объекта. Это полезно, когда:

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

Пример на Python:

from abc import ABC, abstractmethod

class Transport(ABC):
    @abstractmethod
    def deliver(self):
        pass

class Truck(Transport):
    def deliver(self):
        print("Доставка грузом на грузовике")

class Ship(Transport):
    def deliver(self):
        print("Доставка грузом на корабле")

class Logistics(ABC):
    @abstractmethod
    def create_transport(self) -> Transport:
        pass

    def plan_delivery(self):
        transport = self.create_transport()
        transport.deliver()

class RoadLogistics(Logistics):
    def create_transport(self) -> Transport:
        return Truck()

class SeaLogistics(Logistics):
    def create_transport(self) -> Transport:
        return Ship()

# Использование
logistics = RoadLogistics()
logistics.plan_delivery()  # Выведет: Доставка грузом на грузовике

Таким образом, Factory Method позволяет создавать объекты различных классов, не меняя код, который их использует.