Procedimentos, objetos, aspectos, recursos, sujeitos, estilos, etc. são
dimensões de "interesse" (concern) através dos quais se pode decompor um
problema para implementá-lo em software. Um problema pode ser melhor
decomposto como um procedimento; outros, mais complexos, são mais fáceis de
modelar e manter se forem decompostos em objetos. Há requisitos difíceis de
modelar como objetos ou procedimentos, e a orientação a aspectos oferece uma
disciplina que se pode seguir para abstrair aspectos que estão espalhados
por várias classes ou objetos.

Já usamos aspectos em alguns frameworks Java, mas não de forma padrão. O
deployment descriptor de um EJB, por exemplo, já lida com aspectos de
segurança, transações e persistência que são separados do código principal.
AspectJ estende o Java com abstrações de aspectos está se tornando (já é) o
método padrão de implementar aspectos em Java.

Suponha, por exemplo, que você deseje que cada método imprima seu nome
quando for executado. Esse aspecto, para ser implementado em Java, exige que
você coloque, por exemplo, um System.out.println() antes, depois ou dentro
de cada método. Usando AspectJ você cria uma nova estrutura chamada "aspect"
onde pode escrever código que representa o aspecto e determina como e onde
será aplicado (depois de todos os métodos, por exemplo). Através de um
compilador especial o código em AspectJ é "costurado" com o código Java e
bytecodes 100% Java são gerados.

Foi apresentado um tutorial no SBLP (Simpósio Brasileiro de Linguagens de
Programação) por Sérgio Soares e Paulo Borba da UFPE sobre AspectJ - a
principal implementação Java de POA. O artigo deve estar disponível na
Internet provavelmente a partir das páginas dos autores (faça uma busca no
Google). É bem didático e mostra como usar AspectJ para transformar uma
aplicação standalone em uma aplicação distribuída. Os autores irão
apresentar um artigo similar no OOPSLA 2002 (Seattle).

No endereço www.aspectj.org você pode baixar o compilador, ambiente de
desenvolvimento, plug-ins para JBuilder, NetBeans, Eclipse (ainda não tem
para JEdit mas é uma das prioridades). No site também você encontra o
tutorial através do qual pode começar a usar aspectos em seu código Java. A
revista "Communications of the ACM" de outubro 2001 foi dedicada à
programação orientada a aspectos. Se você tiver acesso ao site do ACM você
pode baixar os artigos. Um bom overview do AspectJ é o clássico artigo do
Gregor Kiczales et al. "An Overview of AspectJ" (ECOOP/2001). Todos esses
artigos e vários outros podem ser encontrados em:

http://www.emn.fr/sudholt/research/by_year.html
e
http://trident.mcs.kent.edu/~amarcus/aop/

Helder.
--
Helder da Rocha ([EMAIL PROTECTED])
Web Consultant
www.argonavis.com.br
São Paulo, Brazil
+55 (11) 9291 0567

-----Mensagem original-----
De: DANIEL DA SILVA [mailto:[EMAIL PROTECTED]]
Enviada em: sexta-feira, 16 de agosto de 2002 14:21
Para: [EMAIL PROTECTED]
Assunto: [java-list] programação orientada a aspecto?

>
> Alguém já ouviu falar em POA? se alguém já ouviu falar me mande algun site
> ou material referente.
>
> Atenciosamente, Daniel da Silva
>




------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a