POA

Estrutura básica de um aspecto

0
Fala Galera, neste post iremos conhecer os componentes que constituem a estrutura básica da POA. São eles:
  • JoinPoints(Pontos de junção):são locais bem definidos na estrutura do programa como chamadas a métodos,ocorrência de exceções ou inicialização de atributos. A partir dos join points podemos definir os pontos de atuação, estrutura que será explicada em seguida.
  • PointCuts(pontos de atuação): Os pontos de atuação estão associados aos pontos de junção, porem estes possibilitam a criação de regras genéricas a fim de definir os eventos considerados pontos de junção.Os pontos de atuação constituem a regra de negócio para os eventos nos pontos de junção.
  • Advice(Adendos): Os adendos constituem a porção de código que será executado quando alguma regra definida no ponto de atuação for válida.No adendo podemos especificar qual a caracteristica temporal de execução(before,after,around) .
  • Aspect(Aspecto): É semelhante a uma classe(POO),encapsula os diversos pontos de atuação e seus adendos,são definidos em arquivos separados e constituem a unidade principal da programação orientada a aspecto, são como classes para a orientação a objetos.

observações: Os PointCuts,advices e aspectos são elementos reais da programação orientada a aspecto, são representados por linhas de código, já os joinPoints são elementos virtuais, não são elementos definidos por linhas de código e sim “pontos de entrada” mentalizados,como marcadores imaginários de pontos onde se deseja executar “porções de extras” de código, parte do código onde a POA deve ser usada.

Por enquanto é isso..No proximo post irei exemplificar todos os conceitos abordados neste Post. Boa semana até mais…

POA,Elementos básicos

0
Fala galera, como prometido teremos mais alguns post sobre programação orientada a aspecto.Hoje vamos falar dos elementos necessários para construir uma aplicação utilizando a POA. A composição de um sistema orientada a aspectos é composta basicamente de 3 elementos, entre eles:

  • Linguagem de componentes: É a linguagem utilizada para implementer as funcionalidades básicas do sistema(interesses funcionais).Entre as linguagens de componentes podemos utilizar c#,c++,java e etc..
  • Linguagem de aspectos: É a linguagem utilizada para construir aspectos/comportamentos e definir sua forma de utilização(ativação).exemplo: AspectJ
  • combinador de aspecto: combina o código gerado pela linguagem de componentes com o código gerado pela linguagem de aspectos e forma um código intermediario que deve ser compilado para gerar o “executavel” final.

Então, ficamos por aqui.Na próximo post abordaremos a estrutura básica de um aspecto(join points,pointcuts,adendos e aspectos).

Programação Orientada a aspecto

0
Fala Galera, neste post abordaremos um conceito novo(pelo menos não acho muitos sites brasileiros sobre o assunto) a programação orientada a aspecto(POA).Bem, vamos começar… Primeiramente a POA é uma nova metodologia de desenvolvimento de software, considerada uma extensão da programação orientada a objetos, Foi desenvolvida no ano de 1997 nos laboratórios da Xerox.A POA é caracterizada por uma linguagem de meta-programação(seu compilador não gera um produto final e sim um produto Intermediario),Ela não tem o objetivo de Revolucionar o atual paradigma de desenvolvimento(POO) e sim tornar-se uma tecnologia completar no desenvolvimento.A POA propoe uma separação das caracteristicas funcionais das caracteristicas sistêmicas do projeto ou seja, pretende separar os requisitos funcionais dos não- funcionais(log de erros, operações com o banco de dados e etc..).Os interesses não-funcionais são chamados tambem de ortogonais/transversais.A POA tem o objetivo de separar e centralizar este código em um único lugar.Vamos ver um exemplo de uso:
Temos um sistema de controle bancário(saques,transferencias,depositos e etc..) e desejamos criar um log de cada operação realizada.Podemos observar que iremos tratar um interesse não- funcional,sendo portanto um interesse ortogonal/transversal.Temos algumas altenativas para implementar este interesse.
1º – cada método receberá uma porção de código referente a execução do log
2º- podemos centralizar o código do log em uma nova classe, porem estariamo aumentando a complexidade do código com um interesse não-funcional
3º – Ou finalmente podemos usar a orientação a aspecto separando a porção de código em um módulo separado.
Podemos concluir que usando a POA podemos eliminar o código duplicado,complexidade e acoplamento do projeto.
Bom galera, por enquanto é isso.. postarei mais sobre o assunto!!
ps: Pra quem se interessar eu conheço um livro sobre o assunto: AspectJ
Go to Top