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] -------------------------------------------------------------------------