Обзор темы [Рефакторинг кода]

Замена кодирования типа состоянием/стратегией

(Replace Type Code with State/Strategy)

Есть кодирование типа, влияющее на поведение, но подклассы использовать нельзя.

Заменить кодирование типа объектом состояния.

Подобен Замене кодирования типа подклассами, но применяется, если кодирование типа меняется уже во время жизни объекта, либо какие-то другие причины мешают применению подклассов.

В данном рефакторинге используется образец состояние/стратегия (State/Strategy Pattern).