Я сейчас читаю книгу Роберта Мартина "Чистый код" и не могу для себя решить задачу.
Роберт Мартин на протяжении всей книги говорит о рефакторинге, в том числе о рефакторинге через выделение класса.
В свои разработках я использую IoC контейнер Windsor и все классы у меня создаются через него.
Собственно вопрос заключается в том, что должен ли я создавать классы, получившиеся в результате рефакторинга, на месте (в методах), или же из них делать обычные зависимости и передавать в конструкторе, как я делаю со всеми зависимостями?
С одной стороны выносить в зависимости удобно, т.к. можно очень легко протестировать класс, но боюсь, что тогда у меня будет слишком много зависимостей. Или же, если много зависимостей, то стоит ещё бить класс, добиваясь следования SRP? Но с другой стороны есть там ещё какой-то принцип, что не следует слишком много вводить классов.
А если всё-таки бить на классы, то нужно ли выделять интерфейсы? Или начать выделять только когда он реально понадобится?