Junior — Middle
90
¿Tiene experiencia en el uso del patrón Abstract Factory en sus proyectos?
Respuesta de la IA
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
Такой подход облегчает расширение и поддержку кода, позволяя менять семейства продуктов без изменения клиентского кода.