Sobes.tech
Junior — Middle

Кайсы учурларда жана кайсы тапшырмалар үчүн Factory Method паттернин колдонушат?

sobes.tech AI

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 әртүрлі сыныптардың объектілерін құруға мүмкіндік береді, оларды қолданатын кодты өзгерту қажет емес.