Autumn SALE

Сокрытие метода

Также известен как: Hide Method

Проблема

Метод не используется другими классами либо используется только внутри своей иерархии классов.

Решение

Сделайте метод приватным или защищённым.

До
Hide Method - Before
После
Hide Method - After

Причины рефакторинга

Очень часто потребность в сокрытии методов получения и установки значений возникает в связи с разработкой более богатого интерфейса, предоставляющего дополнительное поведение. Особенно это проявляется в случае, когда вы начинали с класса в котором не было никаких методов, кроме геттеров и сеттеров.

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

Достоинства

  • Сокрытие методов упрощает эволюционные изменения в вашем коде. Изменяя приватный метод, вам нужно будет заботиться только о том, чтобы не сломать текущий класс, так как этот метод не может быть использован где-то ещё.

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

Порядок рефакторинга

  1. Регулярно делайте попытки найти методы, которые можно сделать приватными. Статический анализ кода и хорошее покрытие unit-тестами может очень помочь в этом.

  2. Делайте каждый метод настолько приватным, насколько это возможно.