Скажите, что вы пишете метод foo()
в классе A. foo никогда не имеет доступа ни к одному из состояний A. Вы ничего не знаете о том, что делает foo, или о том, как он себя ведет. Он может сделать что угодно.
Должно ли foo всегда быть статичным, независимо от каких-либо других соображений? Почему бы и нет?
Кажется, что мои классы всегда накапливают многие частные вспомогательные методы, так как я нарушаю задачи и применяю принцип единственной записи-раз в один раз. Большинство из них не полагаются на состояние объекта, но никогда не будут полезны вне собственных методов класса. Должны ли они быть статическими по умолчанию? Неправильно ли в итоге использовать большое количество внутренних статических методов?