ConstructiCat Logo
CodeBust.
Browse section ▾

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

Problem

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

Solution

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

##Example

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

##Why Refactor

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

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

##Benefits

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

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

##How to Refactor

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

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