O que é AOP – Programação Orientada a Aspectos?

Atualmente, existem vários paradigmas de programação, como por exemplo o paradigma orientado a objetos, onde temos instâncias de classes trocando mensagens entre si. Da mesma forma, também temos o paradigma funcional, onde podemos falar que existem funções que seguem alguns conceitos matemáticos interagindo entre si. Hoje, vamos abordar um outro tipo de paradigma: o AOP – Aspect Oriented Programming, ou Programação Orientada a Aspectos.

O que é a Programação Orientada a Aspectos?

O paradigma orientado a aspectos é um paradigma baseado em meta informações. Primeiramente devemos saber que meta informação é, resumidamente, uma “informação de uma informação”.

Por exemplo, vamos imaginar o seguinte: você tem um carro e esse carro é da cor “preta”. Essa é uma informação do carro, porém “preta” é um atributo. “Cor” seria uma meta informação do carro em um contexto onde a informação a ser tratada é o veículo em si. Já “preta” seria o valor do atributo “cor”, mas esse valor de atributo só tem “significado” ou “força” se sabermos sobre o que “cor” se trata, ou seja: se soubermos a meta informação – ou significado – de “cor”.

Às vezes, nos deparamos com responsabilidades que são difíceis de isolar ou que exigem a escrita de código que não fazem parte do domínio da aplicação; porém, ainda dizem respeito à aspectos essenciais.

A programação orientada a aspectos vem para nos ajudar nisso, pois é uma abordagem que permite a separação dos componentes funcionais de uma forma concisa, utilizando-se de mecanismos de abstração e de composição. O termo “aspecto” se refere aquilo que faz parte da aparência de algo.

O objetivo da programação orientada a aspectos é oferecer suporte para o desenvolvedor na tarefa de separar componentes entre si e os aspectos entre si, utilizando-se de mecanismos que permitam a abstração e composição destas.

Alguns exemplos seriam o gerenciamento de transações, logs, cache, indexação de dados etc.

Alguns conceitos…

Join points: são os pontos que possuem algum aspecto associado. São os métodos da aplicação que necessitam da execução de algum aspecto;

Point cuts: são expressões que identificam os join points, onde podemos usar namespaces, classes e expressões regulares para identificar os join points;

Advices: são fragmentos de código que contêm o comportamento de um aspecto. Existem alguns tipos como Before, After e outros, onde cada um define em que momento da execução do join point, o comportamento do aspecto deverá ocorrer.

Lógica Orientada a Objetos Completo
Curso de Lógica Orientada a Objetos Completo
CONHEÇA O CURSO

Por que utilizar esse paradigma?

Como esse paradigma geralmente envolve conceitos que independem da camada e não tem relação direta com os requisitos funcionais de um sistema, temos alguns benefícios como a reutilização, clareza e desacoplamento do código.

A programação orientada a aspectos também possibilita fazer a devida separação de responsabilidades, considerando funcionalidades que são essenciais para um grupo de objetos, mas não são de responsabilidade direta deles.

Deixe seu comentário

Responsável pelo sucesso do cliente na TreinaWeb. Graduada em Gestão de Tecnologia da Informação pela FATEC Guaratinguetá, além de estudante de UX/UI.

© 2004 - 2019 TreinaWeb Tecnologia LTDA - CNPJ: 06.156.637/0001-58 Av. Paulista, 1765, Conj 71 e 72 - Bela Vista - São Paulo - SP - 01311-200