Нарушители объектно-ориентированного дизайна

Все эти запахи являют собой неполное или неправильное использование возможностей объектно-ориентированного программирования.

Операторы switch

У вас есть сложный оператор switch или последовательность if-ов.

Временное поле

Временные поля – это поля, которые нужны объекту только при определённых обстоятельствах. Только тогда они заполняются какими-то значениями, оставаясь пустыми в остальное время.

Отказ от наследства

Если подкласc использует лишь малую часть унаследованных методов и свойств суперкласа, это является признаком неправильной иерархии. При этом ненужные методы могут просто не использоваться либо быть переопределёнными и выбрасывать исключения.

Альтернативные классы с разными интерфейсами

Два класса выполняют одинаковые функции, но имеют разные названия методов.

Устали читать?

Сбегайте за подушкой, у нас тут контента на 7 часов чтения.

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

Узнать больше...