Я столкнулся с несколькими статьями, такими как этот, которые предполагают, что некоторые слова никогда не должны использоваться как часть имени класса. Когда класс имеет одно из этих слов в имени, это означает, что код должен быть реорганизован или переработан.
Пример:
Менеджер
Причина. Поскольку почти все классы "управляют" чем-то, а смысл "Менеджера" очень широк, люди могут возлагать много обязанностей на класс "Менеджер", все еще имея возможность требовать, чтобы класс "только одно" ". В результате, присвоение имени классу с помощью "Менеджера" не говорит о том, что действительно делает класс. Ранее упоминавшаяся статья " Именование классов Java без "Менеджера" показала:
Например, возьмите класс с именем "UrlManager" - вы не можете определить, объединяет ли он URL-адреса, манипулирует URL-адресами или проверяет их использование. Все имя говорит вам, что это не URL-адрес, но он как-то работает с ними. С другой стороны, имя "UrlBuilder" дает гораздо лучшее представление о том, что делает класс.
Другой пример:
Помощник
Причина: Имя класса, например "ThreadHelper", заставляет людей задаться вопросом, зачем он нужен, и почему он не может просто быть частью класса "Тема". Это на самом деле адаптер или декоратор? Если это так, назовите его именно так. Является ли класс "Thread" уже слишком большой ответственностью? Если да, рефакторинг и дать новому классу значащее имя. "Помощник" ничего не говорит о том, что он делает или как это помогает.
Каковы другие слова в имени класса, которые будут сигнализировать о необходимости рефакторинга или редизайна, и их следует избегать? Почему?
Edit: Я бы подумал, что эти слова используются очень часто, поскольку
- они обычно имеют широкие значения
- они могут вписываться практически во все контексты.
- они останавливают проектировщиков, думающих о лучших проектах или именах
- люди считают, что им хорошо их использовать.
В книге Clean Code указано больше, но не было причин:
Избегайте слов, таких как "Менеджер", "Процессор", "Данные" или "Информация" в имени класса.
Было бы здорово, если бы кто-то мог объяснить им возможные причины.
Похожие вопросы: