Map de funções  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

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?



[Email] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 10542
Localização: SP
Offline

Use o design pattern "Command" - http://www.javacamp.org/designPattern/
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 10542
Localização: SP
Offline

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.
[WWW]
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

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?



[Email] [MSN]
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

Command acho que seria uma solução muito trabalhosa de se implementar neste caso tbm...



[Email] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 10542
Localização: SP
Offline

Veja como é que se implementa o pattern Command, como disse acima.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 10542
Localização: SP
Offline

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.
[WWW]
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

É pelo que vejo não terei como escapar do switchão gigantesco...



[Email] [MSN]
peczenyj
Forum Spammer
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 1600
Offline

Scripting?

http://peczenyj.blogspot.com/

IT'S MAGIC!
WE DON'T HAVE TO EXPLAIN IT!
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

Scripting????



[Email] [MSN]
victorwss
Virtual Machine Man
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 587
Localização: Cuiabá - MT
Offline

Map<Integer, Method>

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT
Especialista em Desenvolvimento Java - CEFET/MT
SCJP 6.0 - 18/12/2007 - PASS - 88%
SCWCD 5 - 17/05/2008 - PASS - 79%
Próximos: SCJD (desenvolvendo o projeto), SCBCD e SCJA se sobrar uma grana

Computação: uma ciência holística e exotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
luistiagos
Virtual Machine Man
[Avatar]

Membro desde: 10/07/2006 10:37:23
Mensagens: 745
Offline

usar reflection iria me dar mais trabalho do que necessito.... acho q fico com o switchão mesmo...



[Email] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team