Обзор темы [Рефакторинг кода]

Разделение аксессора и модификатора

(Separate Query from Modifier)

Есть метод, который возвращает значение и изменяет состояние объекта.

Создать два метода – один для возврата значения, другой для изменения состояния.

Хорошим тоном является то, что методы, возвращающие значения, вообще не меняют наблюдаемое состояние объекта. ( То есть они могут изменять разные кэши, призванные ускорять работу, но не несущие смысловой нагрузки).