← К задачам
Паттерн «Состояние»: жизненный цикл документа
Реализуйте паттерн Состояние для документа.
Класс Document начинает в состоянии 'draft' (атрибут state). Переходы:
publish():draft → moderation, затемmoderation → published; изpublishedничего не меняет;reject():moderation → draft; в остальных состояниях ничего не меняет.
Поведение зависит от текущего состояния — это и есть суть паттерна.
class Document:
def __init__(self):
...
def publish(self):
...
def reject(self):
...
Для запуска тестов необходима авторизация.