Mapeamento dinâmico do valor de enum (int) para digitar
Parece que esse problema é bastante comum em nosso trabalho.
Nós estamos enviando um valor int ou enum através da rede, então nós o recebemos, gostaríamos de criar / chamar um determinado objeto / função.
A solução mais simples seria usar a instrução switch, como abaixo:
switch (value) {
case FANCY_TYPE_VALUE: return new FancyType();
}
Funciona bem, mas teríamos muitos desses blocos de switches, e quando criamos novo valor e tipo, precisaríamos mudar todos eles. Parece certo.
Outra possibilidade seria usar os modelos. Mas não podemos, já que o valor de enum é definido em tempo de execução.
Existe algum padrão de design correto para isso ou qualquer abordagem correta?
Parece um problema muito comum e comum em todos os dias codificação ...