Логотип ConstructiCat
CodeBust.
Навигация по разделу ▾

Ленивый класс.

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

##Признаки и симптомы

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

class Customer {
  String name;
  Address address;
  boolean isPreferred() { return false; }
}
// почти пуст после того, как его методы подняли в Customer
class PreferredCustomer extends Customer {
  @Override boolean isPreferred() { return true; }
}

##Причины проблемы

Это может произойти, если класс был задуман как полнофункциональный, но в результате рефакторинга ужался до неприличных размеров.

Либо класс создавался в расчёте на некие будущие разработки, до которых руки так и не дошли.

##Лечение

##Результат

  • Уменьшение размера кода.

  • Упрощение поддержки.