Sobes.tech
Junior — Middle

V akých prípadoch a na aké úlohy sa používa vzor Factory Method?

sobes.tech AI

Odpoveď od AI

Vzorec Factory Method se uporablja za ustvarjanje objektov brez določanja konkretne razreda ustvarjenega objekta. To je uporabno, kadar:

  • Potrebno je delegirati ustvarjanje objektov podrazredom.
  • Zahtevana je prilagodljivost in razširljivost kode.
  • Logika ustvarjanja objektov mora biti skrita od odjemalca.

Primer v Pythonu:

from abc import ABC, abstractmethod

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

class Truck(Transport):
    def deliver(self):
        print("Dostava s tovornjakom")

class Ship(Transport):
    def deliver(self):
        print("Dostava s plovilom")

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

# Uporaba
logistics = RoadLogistics()
logistics.plan_delivery()  # Izpis: Dostava s tovornjakom

Tako Factory Method omogoča ustvarjanje objektov različnih razredov brez spreminjanja kode, ki jih uporablja.