В некоторых наших проектах есть иерархия классов, которая добавляет дополнительные параметры по мере продвижения по цепочке. Внизу некоторые классы могут иметь до 30 параметров, 28 из которых просто передаются в суперконструктор.
Я признаю, что использование автоматического DI через что-то вроде Guice было бы неплохо, но по некоторым техническим причинам эти конкретные проекты ограничены Java.
Соглашение об организации аргументов в алфавитном порядке по типу не работает, потому что, если тип подвергается рефакторингу (круг, который вы передали для аргумента 2, теперь является фигурой), он может внезапно выйти из строя.
Этот вопрос может быть конкретным и чреватым критикой типа «Если это ваша проблема, вы делаете это неправильно на уровне дизайна», но я просто ищу любые точки зрения.