Introdução a AOP
Este tutorial refere-se ao início com a Programação Orientada a Aspectos.
A ideia da AOP(em pt – Programação Orientada a Aspectos) é retirar o código conhecido como emaranhado, ou seja, códigos que se repetem em diversos locais, centralizando-os, os quais normalmente não fazem parte do dominio, como por ex: Auditoria. Reforçando assim o conceito de COESÃO da OO, ou seja, o objeto gastar esforços com operações que são de sua resposabilidade. Enfim vamos ao que interessa!
Antes de tudo devemos definir os Join Points, PointCuts, Advice e o próprio Aspecto(que seria a junção destes). Para familiarizarmos com essas nomenclaturas, definirei cada uma delas.
JoinPoints(pontos de junção): eles indicam os locais onde os advices seram ligados, para melhor compreender, seria a execução de um método, atribuição de um valor(setAtributo()), etc.
void add(){//Ponto de junção
}
Pointcuts(Ponto de atuação), servem para definir em quais eventos os advice seram disparados/executados, ou seja, a ligação/definição do advice a um determinado método por exemplo. Para entender melhor a diferença entre ponto de junção e de atuação. Entenda o seguinte: é sabido que o joinpoint é onde o advice será ligado, já o pointcut esta entre os dois, de que forma? Ele serve para estabelcer a forma como o advice irá saber se deve ou não ser executado, ex:
- Na classe Noticias, tem um método getNoticia(); Porém, pode ser que este método seja sobrecarregado getNoticias(String title), entaum como o advice vai saber o momento certo a entrar em ação, a qual método estará vinculado? É ai que entra o poder do pointcut, ele quem vai dizer onde advice entrará em execução.
O Advice como já devem ter percebido é “o cara”, é a operação a ser executada a cada ponto de junção. É o local onde está o código a ser executado quanto é identificado a execução de um Joinpoint.
Inserção – como o próprios nome diz, a POA faz uma inserção no nosso código. Vamos entender isso. A AOP executa algo semelhante a API Reflection do Java, ou seja, em tempo de execução, a estrutura de uma classe ou até mesmo um aspecto do sistema pode ser alterado. Adicionando novos métodos, atributos, definir que uma classe implementa uma determinada Interface.
Declaração em tempo de compilação – A ideia dessa instrução é declarar warning e erros. Como? Bom, um programador poderia por “N” fatores querer explicitar que não se pode chamar um método em um determinado momento, ou até mesmo um código do Hibernate não pode ser usado pelo GWT(Google Web Toolkit).
O aspecto como é óbvio é a união de todos esses atributos citados, adicionando ainda as inserções e declarações;
Em post domanstrarei como criar um aspecto.
Até o próximo!


Leonardo Henrique Machado
em 22/1/2010 10:04 - Responder
O texto não ficou bom. Tá difícil de ler e cheio de erros de português e de concordância.
em 22/1/2010 10:04 - Responder


Thiago Olveira Camargo
em 2/12/2010 11:40 - Responder
Parabéns pelo post, ele foi bem objetivo, no entanto algumas partes podem ser melhoradas.
Você fala de advices umas 2 vezes para depois explicar o significado, esta ordem deve ser trocada.
Alguns erros de digitação, que na hora da leitura e aprendizado atrapalha um pouco. ex: estabelcer e domanstrarei.
Para um post sério, escrever "entaum" é meio complicado...rs
E na frase que diz "A AOP executa algo semelhante a API Reflection do Java, ou seja, ..." Não está errado, porém, seria melhor colocar o conceito primeiro, depois exemplificar.
No mais, meus parabéns, para um post resumido você foi bem esclarecedor.
Você fala de advices umas 2 vezes para depois explicar o significado, esta ordem deve ser trocada.
Alguns erros de digitação, que na hora da leitura e aprendizado atrapalha um pouco. ex: estabelcer e domanstrarei.
Para um post sério, escrever "entaum" é meio complicado...rs
E na frase que diz "A AOP executa algo semelhante a API Reflection do Java, ou seja, ..." Não está errado, porém, seria melhor colocar o conceito primeiro, depois exemplificar.
No mais, meus parabéns, para um post resumido você foi bem esclarecedor.
em 2/12/2010 11:40 - Responder
[Este post ainda não foi associado a uma sequência]
Você está em:
canal Java
Francisco Iury Teixeira Da Silva
Space do autor
Atualmente cursando Sistemas de Informação, Especialização de Desenvolvimento para Web utilizando a platarfoma Java EE, desenvolvedor Java. SCJP 6.
Space do autor

Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

0
0
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!