Back to questions
Junior — Middle
52
Имели ли вы опыт использования паттерна Абстрактная фабрика в своих проектах?
Answer from AI
sobes.tech AI
Паттерн Абстрактная фабрика используется для создания семейств взаимосвязанных объектов без указания конкретных классов. В проектах на 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
Такой подход облегчает расширение и поддержку кода, позволяя менять семейства продуктов без изменения клиентского кода.