Programação orientada a aspectos

Thiago Ananias Negreiros Silva (e-mail) trabalha com desenvolvimento de Web Sites utilizando ASP, javascript, SQL Server. Atualmente na Allfishing e cursando Sistemas da Informação.

Saudações pessoal! Primeiramente eu quero dizer que é uma honra participar de um portal como o iMasters e espero que vocês gostem dos meus artigos. Para começar, vou falar de uma coisa meio desconhecida, a “Programação Orientada a Aspectos”.

Neste primeiro artigo, vamos montar nosso ambiente de programação e faremos um “HelloWorld” para exemplificar a Orienteção a Aspectos. Para tanto, baixei a IDE de desenvolvimento “Eclipse” do site http://www.eclipse.org/downloads/

Entre no site http://www.eclipse.org/ajdt/downloads/ e baixe o AspectJ para o Eclipse 3.2. Ele que fará nossas classes responderem aos Aspectos. Este arquivo que você baixará é um “ZIP”, e quando você extrair, verá duas pastas: “features” e “plugins”. O conteúdo destas pastas você deverá copiar para as pastas de respectivos nomes para dentro da pasta de onde você instalou o Eclipse.

Bom, depois de instaladas as ferramentas, mãos à obra. Execute o Eclipse e inicie um novo AspectJ Project.

imagem1.jpg

O nome do projeto será “Hello”.

imagem2.jpg

Depois disso, dê um Finish.

No Package Explorer, você verá nosso “Aspectj Project” e criará uma nova classe normalmente.

imagem3.jpg

O nome dela será “Oi” e terá a seginte sintaxe:

import javax.swing.JOptionPane;

public class Oi {

      public static void main(String args[]) {

            JOptionPane.showMessageDialog(null, "Main");

      }

}

Até então foi fácil, não é?! Bom, agora vamos criar nosso primeiro Aspecto:

imagem4.jpg

Dê o nome de “Aspecto” para ele. Agora, note o seguinte:

imagem5.jpg

Do mesmo modo que uma classe normal, também podemos dar “import” para usar as classe do Java. Vamos montar nosso exemplo que ficará assim:

imagem6.jpg

Bom, agora vamos à explicação:

01. Como em uma classe normal, podemos nos utilizar do “import”.

02. Neste ponto, definimos um método que o Aspecto irá monitorar, é um “Ponto de Junção”, mas vamos ver isso mais adiante, entenda que isso servirá como uma “Trigger” no SQL Server, eu pego uma método qualquer e ele vai ficar dentro de “metodo()” que eu mesmo defini.

03. Agora, com a palavra reservada “before()”, eu defino que antes que ocorra o “Ponto de Junção” “metodo()” o sistema imprima na tela a mensagem ”Antes do Main!”

04. No mesmo caso do passo 03, ocorrerá que, com a palavra reservada “after()”, depois de ocorrido o método em questão, aparecerá a mensagem “Depois do Main”.

Isso é um exemplo da utilização da Programação Orientada a Aspectos.

Este artigo tem como objetivo obter o ambiente configurado, matar um pouco da curiosidade da pergunta “Mas que raio de coisa é essa?!” e também ficar com um gosto de “quero mais” porque a Orientação a Aspectos tem muitos recursos além deste.

Um professor, certa vez, falou uma verdade: a Orientação a Aspectos parace uma Trigger, mas não quero fazer comparações. Eu queria deixar bem claro que não entrei em detalhes, não expliquei alguns códigos, pois nos próximos artigos vou falar dos conceitos do porquê utilizar a Orientação a Aspectos, o que a torna vantajosa. Conceitos de como criar os seus Aspectos, explicar o que é "pointcut”, “joinpoint”, código emaranhado, código espalhado e outras coisas que são conceitos que vocês devem ter antes para entenderem.

É isso. Espero que tenham gostado. Comentem, critiquem, mas falem o que acharam deste material pois é isso que me motiva a escrever mais. E se for uma critica, da próxima vez farei um artigo melhor!

Obrigado!