Ola… tenho a seguinte situação: tenho varios codigos em hexadecimal cada um desses codigos realizara uma operação diferente ao ser lido… posso fazer isto utilizando um monte de ifs porem não acho uma solução nada elegante… minha duvida é existe algum pattern ou algo que possa mapear cada: [codigo x função] ou seja algo como um Map que tenha os codigos hexadecimais como chaves e inves de retornar um valor ele faça uma determinada função?
A propósito, como estou achando que os códigos que você está usando são pequenos e consecutivos, a solução mais rápida envolveria um “switch”, não um monte de ifs, se você está simulando um processador ou interpretando algo semelhante a bytecodes.
thingol… acertou na mosca… é exatamente uma arquitetura que vou simular… e qdo disse um monte de ifs me referia tbm a coisas com switch… neste caso usaria switch por ser diversos codigos (de 0 a FF) porem queria meio que fujir da implementação de um switch gigantesco…~ao meu ver não seria uma solução muito elegante usar um switch gigantesco… em C é possivel fazer ponteiros de funções… porem em java teria algum mecanismo que possa fazer algo semelhante a isto?
Command acho que seria uma solução muito trabalhosa de se implementar neste caso tbm…
Veja como é que se implementa o pattern Command, como disse acima.
No caso do C# existe o Delegate, e no Java 7.0 está proposta a criação do novo recurso “Closure”. Tudo isso evita a criação de novas classes (mesmo que sejam classes anônimas).
Note que o jeito mais rápido para executar o seu programa ainda é o velho e bom “switch” gigante.
É pelo que vejo não terei como escapar do switchão gigantesco…
Scripting?
Scripting???
Map<Integer, Method>
usar reflection iria me dar mais trabalho do que necessito… acho q fico com o switchão mesmo…