Padrão de projeto - visitor
Aluna: Ana Paula Oliveira
Prof.ª: Sabrina Souto
Sumário
Definição Motivação Aplicabilidade
Estrutura
Vantagens e Desvantagens
Exemplo
Definição
O Visitor é um padrão comportamental que visa implementar operações em um conjunto de elementos. Visitor permite definir operações atuais e futuras de modo que não altere a estrutura original do conjunto de elementos.
Motivação
Atribuir um visitante responsável pela lógica da aplicação sem sobrecarregar a classe dos elementos envolvidos. O visitor recebe os objetos a partir da aceitação, criando uma classe concreta para cada operação que ele deseja realizar sobre os elementos, promovendo uma interação entre eles.
Aplicabilidade
Utilizar o padrão Visitor nas seguintes situações em que se deseja: Executar operações sobre diversos elementos que dependem apenas das suas classes concretas, não possuindo uma interface comum;
Aplicar operações distintas e não relacionadas em classes separadas com o intuito de não poluir o código de um conjunto de elementos;
Reunir operações relacionadas em uma única classe facilitando a organização das mesmas. Caso a estrutura do objeto mude frequentemente a melhor forma de evitar grandes alterações em visitantes é adicionar as operações na própria classe do elemento.
Estrutura
Vantagens e Desvantagens
Vantagens:
- Facilitar a criação de novas operações por meio da adição de um novo visitante; - Reunir operações relacionadas a separar as distintas, isto é, organiza as relacionadas em um visitante e as distintas são divididas em suas subclasses visitantes.
Desvantagens:
- Ao adicionar um novo elemento na sua classe, cada novo ConcretElement dá origem a uma nova operação abstrata em visitor dificultando a reusabilidade da aplicação; - Dificultar o encapsulamento a partir da necessidade de se fornecer operações públicas que acessam o estado interno dos elementos no ConcretElement para que o visitor execute o seu trabalho.