Нарушители объектно-ориентированного дизайна
Все эти запахи являют собой неполное или неправильное использование возможностей объектно-ориентированного программирования.
У вас есть сложный оператор switch
или последовательность if
-ов.
Временные поля — это поля, которые нужны объекту только при определённых обстоятельствах. Только тогда они заполняются какими-то значениями, оставаясь пустыми в остальное время.
Если подкласс использует лишь малую часть унаследованных методов и свойств суперкласса, это является признаком неправильной иерархии. При этом ненужные методы могут просто не использоваться либо быть переопределёнными и выбрасывать исключения.
Два класса выполняют одинаковые функции, но имеют разные названия методов.