Неуместная близость
Симптомы и признаки
Один класс использует служебные поля и методы другого класса.
Причины появления
Смотрите внимательно за классами, которые проводят слишком много времени вместе. Хорошие классы должны знать друг о друге как можно меньше. Такие классы легче поддерживать и повторно использовать.
Лечение
-
Самый простой выход — при помощи перемещения метода и перемещения поля перенести части одного класса в другой (в тот, где они используются). Однако это может сработать только в том случае, если оригинальный класс не использует перемещаемые поля и методы.
-
Другим решением является извлечение зависимых частей в отдельный класс и сокрытие делегирования к этому классу.
-
Если между классами существует обоюдная зависимость, стоит прибегнуть к замене двунаправленной связи на однонаправленную.
-
Если близость возникает между подклассом и родительским классом, рассмотрите возможность замены делегирования наследованием.
Выигрыш
-
Улучшает организацию кода.
-
Упрощает техническую поддержку и повторное использование кода.