Em alguns de nossos projetos, há uma hierarquia de classes que adiciona mais parâmetros à medida que desce na cadeia. Na parte inferior, algumas das classes podem ter até 30 parâmetros, 28 dos quais estão apenas sendo passados para o superconstrutor.
Reconheço que usar DI automatizado por meio de algo como o Guice seria bom, mas por alguns motivos técnicos, esses projetos específicos são restritos ao Java.
Uma convenção de organizar os argumentos em ordem alfabética por tipo não funciona porque se um tipo for refatorado (o Círculo que você estava passando para o argumento 2 agora é uma Forma), ele pode repentinamente ficar fora de ordem.
Esta pergunta pode ser muito específica e repleta de críticas do tipo "Se esse é o seu problema, você está fazendo errado no nível do design", mas estou apenas procurando por pontos de vista.