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