Junior — Middle
91
Haben Sie Erfahrung mit dem Einsatz des Musters Abstract Factory in Ihren Projekten?
Antwort von AI
sobes.tech KI
Паттерн Абстрактная фабрика используется для создания семейств взаимосвязанных объектов без указания конкретных классов. В проектах на Python я применял этот паттерн, когда нужно было создавать объекты разных типов, но с общим интерфейсом, например, для поддержки разных баз данных или разных видов UI-компонентов.
Пример реализации на Python:
from abc import ABC, abstractmethod
class Button(ABC):
@abstractmethod
def click(self):
pass
class WindowsButton(Button):
def click(self):
print("Windows button clicked")
class MacOSButton(Button):
def click(self):
print("MacOS button clicked")
class GUIFactory(ABC):
@abstractmethod
def create_button(self) -> Button:
pass
class WindowsFactory(GUIFactory):
def create_button(self) -> Button:
return WindowsButton()
class MacOSFactory(GUIFactory):
def create_button(self) -> Button:
return MacOSButton()
# Использование
factory = WindowsFactory()
button = factory.create_button()
button.click() # Windows button clicked
Такой подход облегчает расширение и поддержку кода, позволяя менять семейства продуктов без изменения клиентского кода.