Паттерн проектирования «STATE» Насибуллин Арсений (245 группа, )
State – паттерн состояния объекта Позволяет объекту варьировать свое поведение в зависимости от внутреннего состояния Назначение паттерна
Пример
Структура
(Context)TCPConnection - определяет интерфейс, представляющий интерес для клиентов (State)TCPState - определяет интерфейс для инкапсуляции поведения, ассоциированного с конкретным состоянием (ConcreteState)TCPEstablished, TCPListen, TCPClosed - каждый подкласс реализует поведение, ассоциированное с некоторым состоянием Участники
Локализует зависящее от состояния поведение и делит его на части, соответствующие состояниям Делает явными переходы между состояниями Объекты состояния можно разделить Результаты
когда поведение объекта зависит от его состояния и должно изменяться во время выполнения когда в коде операций встречаются состоящие из многих ветвей условные операторы, в которых выбор ветви зависит от состояния Применимость