Ленивый класс.
На понимание и поддержку классов всегда требуются затраты времени и денег. А потому, если класс не делает достаточно много, чтобы уделять ему достаточно внимания, он должен быть уничтожен.
##Признаки и симптомы
На понимание и поддержку классов всегда требуются затраты времени и денег. А потому, если класс не делает достаточно много, чтобы уделять ему достаточно внимания, он должен быть уничтожен.

class Customer {
String name;
Address address;
boolean isPreferred() { return false; }
}
// почти пуст после того, как его методы подняли в Customer
class PreferredCustomer extends Customer {
@Override boolean isPreferred() { return true; }
}##Причины проблемы
Это может произойти, если класс был задуман как полнофункциональный, но в результате рефакторинга ужался до неприличных размеров.
Либо класс создавался в расчёте на некие будущие разработки, до которых руки так и не дошли.
##Лечение
Приёмы рефакторинга
##Результат
-
Уменьшение размера кода.
-
Упрощение поддержки.