Múltiplos argumentos opcionais no construtor em Java - número exponencial de construtores

Isso é algo que eu encontrei algumas vezes e não consegui encontrar uma resposta satisfatória ainda. Isso parece muito estúpido, mas depois de pesquisar isso por um tempo eu não consegui pensar em algo bom.

Digamos que eu tenha uma classe com 20 variáveis ​​de instância, cada uma delas é opcional (será inicializada ou não).

Agora eu quero meu construtor (es) para lidar com todos os casos, no caso de algumas variáveis ​​de instância está tudo bem e eu posso apenas criar construtores com assinaturas diferentes, mas aqui eu tenho 20, então eu precisaria2 ^ 20 = 1.048.576 construtores para lidar com todos os casos! Isso parece ... não muito ótimo, você não concorda?

Então, uma vez que com essa abordagem de força bruta eu basicamente tenho que construir construtores 2n, onde n é o número de variáveis ​​de instância, eu quero encontrar uma maneira melhor de fazê-lo.

Eu vi algumas soluções para este problema, mas acredito que todas elas são baseadas em suposições sobre os dados, mas no meu caso cada uma dessas variáveis ​​pode ser inicializada ou não aleatoriamente, não tenho como saber disso antes da inicialização.

Eu estou procurando alguns padrões de design ou idéias que eu poderia aplicar para tornar meu código um pouco mais ... sustentável (não, não se preocupe, eu não criei 1M + construtores :)

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion