Composite Pattern in Python
Изучите Composite Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Что такое Composite Pattern?
Изучите Composite Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Когда это использовать?
- Решать повторяющиеся задачи объектного проектирования с помощью проверенных структур.
- Разделять обязанности, чтобы код было проще расширять и тестировать.
- Использовать общую терминологию проектирования при обсуждении архитектуры в команде.
Пример кода
main.py
class Number:
# Composite: leaves and containers expose the same operation.
def __init__(self, value): self.value = value
def total(self): return self.value
class Sum:
def __init__(self, *children): self.children = children
def total(self):
# Treat leaves and nested groups uniformly.
return sum(child.total() for child in self.children)
expression = Sum(Number(1), Sum(Number(2), Number(3)))
print(expression.total())
Ожидаемый результат
6
Как это работает
Этот пример демонстрирует Composite Pattern in Python. Измените входные данные, чтобы изучить работу кода.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Практические задания
Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.
- Замените предметную область примера, сохранив структуру паттерна.
- Сравните паттерн с более простой реализацией и объясните компромиссы.
- Напишите тесты для каждого участника перед добавлением новой реализации.