close

AspectoJ

Ir para a navegação Ir para a pesquisa

AspectJ é uma linguagem de programação orientada a aspectos construída como uma extensão da linguagem Java criada no Xerox PARC . Um compilador AspectJ empurra a noção de aspecto para o código da máquina virtual, implementando assim uma noção de relação. Os próprios skins são escritos em Java estendido gerando um arquivo java ou compilados com código de máquina compatível com o gerado pelos compiladores Java.

Recursos do AspectJ

  • Aspectos : Estes são definidos como "wrappers" de código. Eles se parecem com classes Java.
  • Joinpoint : pontos no código Java onde um aspecto pode interceptar classes.
  • Pointcuts - Grupos de pontos de junção logicamente concatenados.
  • Conselhos : São trechos de código associados aos pointcuts, que injetam um novo comportamento em todos os joinpoints representados pelo pointcut.
  • Declarações de membros intertipos : permitem que um aspecto defina completamente os campos e métodos implementados para várias classes.

Vantagens e desvantagens

Algumas das vantagens da linguagem AspectJ incluem:

  • AspectJ permite modelar referências cruzadas, estendendo assim as possibilidades de OOP.
  • É uma linguagem concisa e explícita projetada para oferecer as vantagens da modularidade.

Por outro lado, a linguagem AspectJ oferece as seguintes desvantagens:

  • Sem uma ferramenta apropriada, o programador não entenderá a funcionalidade do sistema completo. Por exemplo, membros entre tipos não podem ser vistos e nunca podem ser usados.
  • Modelagem, planejamento e controle são muito mais importantes na fase de desenvolvimento. Aspectos precisam ser reconhecidos pelos designers, o que facilita a tarefa dos programadores.
  • Aspectos podem ser mal utilizados. Um programador pode implementar falsas funcionalidades em qualquer estágio de desenvolvimento e afetar uma ampla gama do sistema. O poder do POA pode ser difícil de entender.

Compiladores projetados para AspectJ

Existem pelo menos dois compiladores AspectJ:

  • ajc parte das ferramentas suportadas pelo projeto Eclipse , e
  • abc que é um compilador, otimizador e extensível, produzido em aspectbench.org.

Links externos