Злоупотребление статическими классами можно считать плохой практикой. Но то же самое можно сказать и о злоупотреблении любой языковой функцией.
Я не делаю различий между нестатическим классом только со статическими методами и статическим классом. По сути, это одно и то же, за исключением того, что статические классы позволяют компилятору реализовывать намерения разработчиков (отсутствие создания экземпляров этого класса, удобный синтаксис для доступа к его функциональности, и т. Д. ).
Как вы говорите, распространение классов "Помощник" может привести к неприятностям (дизайн, ремонтопригодность, читаемость, обнаруживаемость, другие способности ...). Здесь нет аргументов. Но можете ли вы утверждать, что класс "Помощник" никогда не подходит? Я сомневаюсь в этом.
Действительно, ответственное использование статических классов может принести большую пользу вашему коду:
- Статический класс
Enumerable
предоставляет набор методов расширения, которые многие из нас полюбили. Это логический набор функциональности / бизнес-логики, который не связан ни с каким конкретным типом.
- Услуги, предоставляемые средой / контекстом: например, ведение журнала, настройка (иногда)
- Другие (о которых я сейчас не могу думать):
Так что нет, в общем, это неплохая практика. Просто используйте их с умом ...