Паттерны проектирования Python

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.

Практические задания

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

  1. Замените предметную область примера, сохранив структуру паттерна.
  2. Сравните паттерн с более простой реализацией и объясните компромиссы.
  3. Напишите тесты для каждого участника перед добавлением новой реализации.
Запустить в Python IDE →