Sobes.tech
Junior — Middle
79

Қандай жағдайларда және қандай тапсырмалар үшін Factory Method үлгісі пайдаланылады?

Сұралған компаниялар
ArendadataArendadata

AI-дан жауап

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 позволяет создавать объекты различных классов, не меняя код, который их использует.