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

Замена кодирования типа подклассами

(Replace Type Code with Subclasses)

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

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

Ситуация обычно возникает при наличии операторов выбора, в которых проверяются соответствующие значения типа и выполняются различные действия в зависимости от них. Тогда для каждого значения имеет смысл определить отдельный подкласс, реализующий соответствующее поведение. Противопоказание: значение может изменить после создания объекта, либо уже определены подклассы по каким-либо другим признакам. Тогда надо использовать Замену кодирования типа состоянием/стратегией.

Еще причина использования этого рефакторинга - наличие свойств, присущих объектам с определенным типом. Тогда после применения этого рефакторинга применяются Спускание поля и Спускание метода.