Я заметил, что когда я занимаюсь TDD, это часто приводит к очень большому количеству интерфейсов. Для классов, имеющих зависимости, они вводятся через конструктор обычным образом:
public class SomeClass
{
public SomeClass(IDependencyA first, IDependency second)
{
// ...
}
}
В результате почти каждый класс будет реализовывать интерфейс.
Да, код будет развязан и может быть протестирован очень легко изолированно, но также будут дополнительные уровни косвенности, которые просто заставляют меня чувствовать себя немного... непросто. Что-то не так.
Может ли кто-нибудь использовать другие подходы, которые не требуют такого интенсивного использования интерфейсов?
Как поживают все ваши ребята?