Como optimizar quase duzentos códigos de caixa de comutação em Java
P>Padrão de estratégia
Mais especificamente, veja as condições de comutação e as operações que estão a ser realizadas em cada uma delas. Se você achar que o comportamento em cada caso é suficientemente geral, defina uma interface com um método de serviço apropriado para invocar e implementar o comportamento e depois implemente classes abstratas e concretas, conforme necessário, para cobrir todos os casos.
Em seguida, use uma estrutura de mapa para armazenar instâncias das várias implementações de interface necessárias para cobrir os casos e registrá-las sob cada instância de código de switch. Reutilize as instâncias das implementações de interface conforme necessário. Se você'estiver fazendo isso corretamente, os métodos que implementam seu comportamento devem ser stateless e thread-safe.
Em tempo de execução, simplesmente obtenha o valor da condição do switch de sua variável de entrada, recupere a instância que cobre aquele caso do Mapa e execute o método de serviço. Voilá! Centenas de linhas de código reduzidas a duas em tempo de execução e o número de linhas necessárias para registrar suas instâncias condicionais na inicialização. Se você prevê mudar as condições frequentemente, você pode até mesmo descarregar a definição de inicialização e registrar em um arquivo de recurso e carregar isso, ao invés disso, livrando-se do código.
Artigos semelhantes
- Como vai a Caixa de Entrada do Google? A Caixa de Entrada e o Gmail estão a ficar fortes ou a Caixa de Entrada do Google está estagnada?
- Porque é que a sua programação quase não está disponível na TV para a 4k TV, mas todas as redes abraçaram a HDTV quase desde o início?
- Como optimizar SEO nesta página para o ranking Google
- O que faz o Android quando, após uma actualização, lhe diz que está a 'optimizar' as aplicações?