Назад к вопросам
Arendadata
Junior — Middle
58
В каких случаях и для каких задач применяют паттерн Factory Method?
Компании, где спрашивали
Ответ от нейросети
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 позволяет создавать объекты различных классов, не меняя код, который их использует.