Sobes.tech
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

Такой подход облегчает расширение и поддержку кода, позволяя менять семейства продуктов без изменения клиентского кода.