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

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