State Pattern in Python
Изучите State Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Что такое State Pattern?
Изучите State Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Когда это использовать?
- Решать повторяющиеся задачи объектного проектирования с помощью проверенных структур.
- Разделять обязанности, чтобы код было проще расширять и тестировать.
- Использовать общую терминологию проектирования при обсуждении архитектуры в команде.
Пример кода
main.py
class Playing:
# State: delegate behavior to the current state object.
def action(self): return "Playing"
class Paused:
def action(self): return "Paused"
class Player:
def __init__(self): self.state = Paused()
def set_state(self, state): self.state = state
def action(self):
# Behavior comes from the current state object.
return self.state.action()
player = Player()
player.set_state(Playing())
print(player.action())
player.set_state(Paused())
print(player.action())
Ожидаемый результат
Playing
Paused
Как это работает
Этот пример демонстрирует State Pattern in Python. Измените входные данные, чтобы изучить работу кода.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Практические задания
Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.
- Замените предметную область примера, сохранив структуру паттерна.
- Сравните паттерн с более простой реализацией и объясните компромиссы.
- Напишите тесты для каждого участника перед добавлением новой реализации.