Sobes.tech
Junior — Middle
91

Millistel juhtudel ja milliste ülesannete jaoks kasutatakse Factory Method mustrit?

Ettevõtted, kust küsiti
ArendadataArendadata

Vastus AI-lt

sobes.tech AI

Factory Method muster võimaldab luua objekte ilma konkreetse klassi määramata. See on kasulik, kui:

  • Objektide loomist tuleb delegeerida alamklassidele.
  • Vajadus on tagada koodi paindlikkus ja laiendatavus.
  • Objektide loomise loogikat tuleb varjata kliendi eest.

Python näide:

from abc import ABC, abstractmethod

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

class Truck(Transport):
    def deliver(self):
        print("Kohaletoimetamine veoautoga")

class Ship(Transport):
    def deliver(self):
        print("Kohaletoimetamine laevaga")

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

# Kasutamine
logistics = RoadLogistics()
logistics.plan_delivery()  # Väljund: Kohaletoimetamine veoautoga

Sellisel viisil võimaldab Factory Method luua erinevate klasside objekte, ilma et peaks muutma nende kasutamise koodi.