Первая часть - немного загруженный вопрос.Это все равно, что спросить: «Когда я бегу по пешеходам в моей машине, должен ли я держать обе руки на руле?»
Метод, который создает множество других объектов, почти наверняка делает слишком много.Класс с большим количеством этих методов, вероятно, не следует принципу единой ответственности.
Однако, один из ключевых способов сделать ваш код тестируемым - это использовать IoC (инверсия управления), где зависимости класса (илиметод) передаются ему, а не классу, запрашивающему их.Это значительно облегчает тестирование, так как вы можете проходить тесты.
Итак, краткий ответ: «Да», передайте свои зависимости и посмотрите на хороший компонент внедрения зависимостей .Длинный ответ: «Да, но не делай этого».Каркасы DI, вероятно, заставят вас передавать зависимости объектам, а не методам, и вы обнаружите, что хотите убедиться, что вы ограничиваете эти зависимости - это хорошо.
И, конечно, рефакторинг для уменьшения зависимостейэто хорошо.Сокращение ваших методов, чтобы сделать что-то одно, почти никогда не плохо.Я бы полностью согласился с тем, что это долгосрочная выгода, если вы можете позволить себе краткосрочные затраты.