Почему здесь плохо иметь слишком много аргументов при внедрении конструктора?
У меня есть контроллер, который заботится о первом путешествии пользователя на моем веб-сайте (игнорируйте имена нижеприведенных зависимостей, они случайны)
@RestController
class Controller(
private val fooComponent: FooComponent,
private val dataComponent: DataComponent,
private val userComponent: UserComponent,
private val restComponent: RestComponent,
private val calcComponent: CalcComponent,
private val studentComponent: StudentComponent,
private val tampComponent: TampComponent,
private val checkComponent: CheckComponent,
private val trialComponent: TrialComponent,
private val reviewComponent: ReviewComponent,
private val helpComponent: HelpComponent,
private val achievementComponent: AchievementComponent,
private val glassComponent: GlassComponent
)
Как видите, у него много зависимостей. Обычно считается, что множество зависимостей означает, что код нарушает принцип единой ответственности. Здесь этот контроллер выполняет одно путешествие пользователя (например, регистрацию на моем веб-сайте). каковы другие недостатки этого дизайна? Кроме того, был бы признателен за предложения альтернатив.