Pergunta

Estou refatoração algum código para uma atribuição - atualmente o ponto de vista tem muitos botões e menus e um ouvinte de ação que decide o que fazer usando event.getSource (). Pelo que tenho lido pessoas parecem pensar que é melhor para cada componente GUI para ter seu próprio ouvinte de ação, talvez criado por algum tipo de fábrica. No entanto diferente do que limpar o código um pouco que outros benefícios que isso dá? - também isto não significar muito mais objetos estarão na pilha e pode afetar o desempenho

Obrigado,

Aly

Foi útil?

Solução

Usando ouvintes meios separados que você não deve precisar de realizar testes booleanos para determinar o que deve ser feito em seu ouvinte. Isto tem dois benefícios

  • Primeiro torna o código correr um pouco mais rápido.

  • Segundo ele melhora manutenção e extensibilidade do seu código. Se você precisar adicionar um novo componente, você não precisa modificar os métodos existentes.

Se você tentar ter um ouvinte (muitas vezes o applet ou o próprio objeto do aplicativo) atuam como ouvinte por vários componentes, então você está desfazendo o envio básico que é central para chamar métodos, e estão a implementar expedição à mão. Isto requer que algum tipo de mecanismo interruptor ser usado para distinguir os vários componentes cujos eventos você está lidando. O sistema está melhor equipado para fazer isso do que você é. Esta estrutura switch é tanto sujeito a erros e difícil de manter como o programa cresce. Deixar o envio para o sistema.

Fonte: Padrões para Java Eventos

Outras dicas

É uma troca. Código com um monte de if na fonte é considerado feio, enquanto massas de ouvintes podem atravancar a sua memória e ter um efeito negativo no desempenho.

Dada a escolha, eu costumo ir para o que minimiza a quantidade de código que eu tenho que escrever, como código menos geralmente significa menos oportunidades para erros.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top