2. ROTEIRO
O que é ?
Objetivo
Estrutura
Joint Point Model (JPM)
Exemplo
Prática
3. O QUE É ?
É um paradigma de programação que permite separar e
organizar o código de acordo com a sua importância para a
aplicação (separation of concerns).
Todo o programa escrito no paradigma orientado a objetos
possui código que é alheio a implementação do
comportamento do objeto. A implementação das
funcionalidades secundárias se encontra espalhada por
toda a aplicação (crosscutting concern). A POA permite que
o código seja encapsulado e modularizado, encapsulando o
comportamento do Objeto;
4. O QUE É ?
Originalmente desenvolvido por Gregor Kiczales e sua
equipe na Xerox PARC;
Eles desenvolveram o AspectJ, a primeira e mais popular
linguagem POA;
Estrutura capaz de alterar o comportamento de classes que
não estão encapsuladas dentro do paradigma OO.
5. OBJETIVO
Retirar o código emaranhado, intrusivo e muitas vezes,
replicado em diversos locais do sistema, centralizando-os,
tornando os interesses transversais modularizados na
aplicação.
O código no qual a POA propõe-se a manter, não faz parte
do domínio do sistema. Portanto, é considerado um
requisito sistêmico, como: Auditoria, Controle de Falhas,
etc. Assim, a POA visa consequentemente reforçar o
conceito de coesão da Orientação a Objetos (OO).
6. VANTAGENS
Alta reusabilidade de código;
Menor quantidade de linhas programadas;
Facilidade para manutenção;
Menor tempo e custo de desenvolvimento;
Maior coesão entre os objetos;
Menor acoplamento entre os objetos.
7. ESTRUTURA
Conta com uma estrutura de encapsulamento chamada
Aspecto;
Aspecto pode alterar o comportamento de um código
através de sua estrutura;
Advice e Join Point, são estruturas de manipulação do
Aspecto;
8. JOIN POINT MODEL (JPM)
Este modelo define:
Join Points : Onde o aspecto pode ser aplicado.
Pointcuts : Especificar e quantificar os múltiplos Join Points.
Advice : Um meio para alterar o comportamento dos Join Points.
Execução de métodos, a criação de objetos e
lançamento de exceções. São dinâmicos e só podem
ser descobertos em tempo de execução.
Tem por base uma consulta a todos os Join Points,
para selecionar o menor conjunto deles.
O AspectJ tem dois JPMs: pointcuts e advice, e declarações inter-
tipo. Outras linguagens orientadas a aspecto tem JPMs diferentes.
Adendo é a operação a ser executada a cada Join Point. O
trecho de código que será executado quando é identificado a
execução de um Join Point, não sendo invocado
explicitamente.