Sobes.tech
Junior — Middle
92

În ce cazuri și pentru ce sarcini se aplică pattern-ul Factory Method?

Companiile au fost întrebate
ArendadataArendadata

Răspuns de la AI

sobes.tech AI

Modelul Factory Method este utilizat pentru a crea obiecte fără a specifica clasa concretă a obiectului care urmează să fie creat. Acest lucru este util atunci când:

  • Este necesar să delegați crearea obiectelor subclasei.
  • Este nevoie să asigurați flexibilitate și extensibilitate codului.
  • Este necesar să ascundeți logica de creare a obiectelor de client.

Exemplu în Python:

from abc import ABC, abstractmethod

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

class Truck(Transport):
    def deliver(self):
        print("Livrare cu camion")

class Ship(Transport):
    def deliver(self):
        print("Livrare cu navă")

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()

# Utilizare
logistics = RoadLogistics()
logistics.plan_delivery()  # Va afișa: Livrare cu camion

Astfel, Factory Method permite crearea de obiecte din diferite clase fără a modifica codul care le utilizează.