Статические методы несложно проверить сами по себе. Проблема в том, что другой код , вызывающий статический метод, сложно проверить, потому что вы не можете заменить статические методы.
Я думаю, что статические методы хороши, когда они частные или , когда они "служебные" методы - например, сделать экранирование строки. Проблема возникает, когда вы используете статические методы для вещей, которые вы хотите иметь возможность смоделировать или иным образом заменить в тестах. Фабричные методы также могут быть полезны , хотя внедрение зависимостей, как правило, является лучшим подходом - опять же, это частично зависит от того, хотите ли вы заменить функциональность в тестах.
Что касается того, чтобы не быть "ОО" - не все, что вы пишете на общепринятом языке ОО, должно быть "чистым" ОО. Иногда не-OO-маршрут просто более прагматичен и приводит к более простому коду. У Эрика Липперта есть отличный пост об этом в блоге, который, к сожалению, сейчас я не могу найти. Тем не менее, в этом посте есть комментарий , который имеет отношение к делу. В нем говорится о методах расширения, а не о статических методах, но принцип тот же.
Методы расширения часто подвергаются критике
как "недостаточно ООП". Это кажется
мне положить тележку впереди
лошади. Целью ООП является
дать рекомендации по структурированию
крупных программных проектов, написанных
команды людей, которым не нужно
знать внутренние детали каждого
работа другого, чтобы быть
продуктивный. Цель C # - быть
полезный язык программирования, который
позволяет нашим клиентам быть продуктивными
на наших платформах. Очевидно, что ООП является
полезно и популярно, и мы
поэтому попытался сделать это легко
программа в стиле ООП на C #. Но
Цель C # не в том, чтобы быть ООП
язык ". Мы оцениваем возможности на основе
о том, полезны ли они для нашего
клиенты, не основанные на том, являются ли они
строго соответствовать какой-то абстрактной
академический идеал того, что делает
язык объектно-ориентированный. Что ж
радостно беру идеи от oO,
функциональный, процедурный, императив,
декларативный, что угодно, пока мы
может сделать последовательный, полезный продукт
это приносит пользу нашим клиентам.