A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Carlos R. M. Junior Eduardo Motta

Apresentações semelhantes


Apresentação em tema: "Carlos R. M. Junior Eduardo Motta"— Transcrição da apresentação:

1 Carlos R. M. Junior Eduardo Motta
Visitor Carlos R. M. Junior Eduardo Motta

2 Propósito do Padrão Representar operações a ser executadas nos elementos de uma estrutura de objetos; Permitir definir uma nova operação sem mudar as classes dos elementos sobre as quais opera.

3 Motivação Um compilador que representa programas como árvores sintáticas abstratas. Necessidade de execução de operações nas árvores sintáticas abstratas para análises “semânticas estáticas”;

4 Motivação Verificar se todas as variáveis estão definidas;
Geração de código executável. Operação de tipos; Otimização de código; Análise de fluxo; Verificação se as variáveis receberam valores antes de serem usadas.

5 Motivação Solução Inicial

6 Motivação Visitor

7 Aplicabilidade Estrutura de objetos contém muitas classes de objetos e deseja-se executar operações sobre esses objetos que dependem das classes concretas;

8 Aplicabilidade Muitas operações distintas e não-relacionadas de uma estrutura de objetos; Estrutura das classes raramente muda, porém, operações novas podem ser freqüentemente adicionadas.

9 Estrutura

10 Participantes Visitor ConcreteVisitor Element
Declara uma operação visit para cada classe ConcreteElement na estrutura do objeto. ConcreteVisitor Implementa uma operação. Element Define uma operação accept que aceita um visitante como um argumento.

11 Participantes ConcreteElement ObjectStructure
Implementa operação accept que aceita um visitante como um argumento. ObjectStructure Pode enumerar seus elementos; Pode fornecer uma interface de alto nível para permitir ao visitante visitar seus elementos; Poder ser uma coleção ou uma composição.

12 Colaboração

13 Consequências Visitor torna fácil a adição de novas operações;
Um visitor reúne operações relacionadas e separa as operações não-relacionadas. É difícil acrescentar novas classes ConcreteElement;

14 Consequências Visita hierarquia de classes; Acumula estados;
Rompe o encapsulamento.

15 Exemplos

16 Exemplos

17 Exemplos

18 Exemplos

19 Exemplos

20 crmarquesjc@gmail.com ed@eduardomotta.com
Dúvidas


Carregar ppt "Carlos R. M. Junior Eduardo Motta"

Apresentações semelhantes


Anúncios Google