Sobes.tech
Back to questions
Middle — Middle+
51

Объясните концепцию фабрики декораторов и как она применяется в проектировании систем.

Companies where asked
Soft Media Group
Фабрика РешенияФабрика Решения

Answer from AI

sobes.tech AI

Фабрика декораторов — это паттерн проектирования, который сочетает фабричный метод и паттерн декоратор. Идея в том, что фабрика создаёт объекты, оборачивая их в один или несколько декораторов, добавляя дополнительное поведение динамически.

В Python это удобно реализовать с помощью функций-декораторов и фабричных функций, которые возвращают обёрнутые объекты.

Пример:

def decorator_factory(extra_behavior):
    def decorator(func):
        def wrapper(*args, **kwargs):
            print(f"Before {func.__name__}")
            result = func(*args, **kwargs)
            print(extra_behavior)
            print(f"After {func.__name__}")
            return result
        return wrapper
    return decorator

# Использование фабрики для создания декоратора с разным поведением
my_decorator = decorator_factory("Дополнительное поведение")

@my_decorator
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

В системах фабрика декораторов позволяет централизованно создавать объекты с нужным набором обёрток, что упрощает управление функциональностью и расширяемость.