Vantagens de Reflexão

14/01/2013

2

Caros, boa noite.

Alguém pode me dizer qual a vantagem de se usar reflexão. Ainda não entendi muito bem por que utilizar reflexão...

Obrigado!
Responder

Posts

Olá Tiago tudo bem????
Meu caro a vantagem principal de usar a api de reflexão e garantir um código limpo é eficiente, onde vários framework's e especificações fazem uso constante da api de reflexão.
Um outro exemplo sobre a eficiencia do codigo desenvolvido. Muitos arquitetos java mesmo usado framework's ao desenvolver a arquitetura do projeto é aplicado a reflexão na mesma de modo que os desenvolvedores possam reaproveitar melhor os componentes feitos pelos arquitetos.
att
robson
Responder

14/01/2013

Danilo Gomes

A vantagem é você manipular algum objeto ou classe sabendo o mínimo possível dele.

Você acessar diversas informações de classe, como quais campos tem, se são privados, públicos, se possuem annotations, quais são as annotations, se tem valores, enfim... tudo.

Em objetos pode invocar getters e setters sem necessariamente saber quais são estes.

É legal o uso, mas é bom ter moderação, não é um código muito bonito.
Responder

14/01/2013

Danilo Gomes

Se houver necessidade do uso, pode utilizar a biblioteca Mirror, que facilita bastante a compreensão e o uso de reflection.

http://projetos.vidageek.net/mirror/mirror/
Responder
A reflexão é o tipo de recurso que você irá usar poucas vezes, mas nas poucas que usar, vai conseguir tirar um ganho monstro com o recurso.

A idéia básica por trás da reflexão é te possibilitar analisar a estrutura das suas classes em tempo de execução. Na esmagadora maioria das vezes, você vai usar o recurso mesmo quando estiver escrevendo frameworks, por exemplo, em que muitas vezes o componente gerenciado pelo framework precisa ser analisado antes de ser executado.

No entanto, há outros usos mais corriqueiros que fazem valer à pena. Vou te dar alguns exemplos:

* Garantir que sua arquitetura está sendo seguida. Por exemplo: é muito comum você escrever código usando reflexão que verifique se os nomes dos seus métodos estão de acordo com as convenções definidas pelo arquiteto. O Java possui a partir da versão 6 um recurso fantástico que são as anotações plugáveis. Com elas, você pode, por exemplo, através de reflexão, barrar a compilação do código anotado se não estiver de acordo com sua regra.

* Serialização de objetos: eu diversas vezes usei anotações pra definir quais os métodos e atributos que vão ser serializados ou não. É bastante útil.

* No uso de anotações: se você quer tirar proveito das anotações Java, man: é reflexão o tempo inteiro.

* Implementação de padrões de projeto: é outro uso interessante. Você pode usar reflexão para implementar alguns padrões de projeto, como por exemplo factory e outros. É bastante interessante. Se não me engano, alguns anos atrás li na Java Magazine um artigo justamente sobre isto.

* Exemplos bacanas de aplicação brutal de reflexão: Hibernate e Spring. Aliás, se quiser ver reflexão muito bem escrita e aplicada, da uma lida no código fonte do módulo context do Spring.
Responder