Decorator Pattern in Python
Изучите Decorator Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Что такое Decorator Pattern?
Изучите Decorator Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Когда это использовать?
- Решать повторяющиеся задачи объектного проектирования с помощью проверенных структур.
- Разделять обязанности, чтобы код было проще расширять и тестировать.
- Использовать общую терминологию проектирования при обсуждении архитектуры в команде.
Пример кода
main.py
class Message:
# Decorator: wrap an object to add behavior dynamically.
def render(self): return "hello"
class Uppercase:
def __init__(self, wrapped): self.wrapped = wrapped
def render(self): return self.wrapped.render().upper()
class Logger:
def __init__(self, wrapped): self.wrapped = wrapped
def render(self):
# Add behavior while preserving the render interface.
return "LOG: " + self.wrapped.render()
print(Logger(Uppercase(Message())).render())
Ожидаемый результат
LOG: HELLO
Как это работает
Этот пример демонстрирует Decorator Pattern in Python. Измените входные данные, чтобы изучить работу кода.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Практические задания
Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.
- Замените предметную область примера, сохранив структуру паттерна.
- Сравните паттерн с более простой реализацией и объясните компромиссы.
- Напишите тесты для каждого участника перед добавлением новой реализации.