Padrão Visitor
Visitor (331) - Comportamental
- Objetivo: Representar uma operação a ser realizada nos elementos de uma estrutura de objetos.
- Permite definir uma nova operação sem mudar as classes dos elementos nos quais ele opera.
- Exemplo do Gof: página 332: NodeVisitor e subclasses TypeCheckingVisitor e CodeGenerationVisitor. Em Java,
poderíamos falar ainda de um nível a mais na hierarquia: BytecodeGenerationVisitor e NativeCodeGenerationVisitor.
- Padrões relacionados: muitas vezes o visitante é usado para percorrer os elementos de um Composite; o visitante pode realizar a
interpretação no padrão Interpreter.
- Usos conhecidos: o compilador do Smalltalk-80 usa um Visitor para analisar código-fonte; ele poderia também ser usado para gerar
código, formatar, colorir, etc. É usado em outros contextos, por exemplo
toolkits para geração de gráficos 3D. As ações do software no mundo tridimensional podem ser executadas por visitantes.
- Exercício: projeto uma arquitetura para um sistema de sua escolha que aplique os padrão Composite e Visitor e um terceiro padrão de sua escolha.
Última atualização: quinta-feira, 3 nov. 2022, 13:40