Motivación:
Permite incluir nuevos métodos a una clase sin tener que modificar a gran escala las clases existentes, cuando se dispone de una estructura jerárquica en la que clases padre y clases hoja comparten métodos en común.
Estructura:
Participantes:
- Visitor(VisitorNodo):
Declara una operación visitar para cada clase de operación ElementoConcreto de la estructura de objetos.
- ConcretVisitor(VisitorComprobacionDeTipos):
Implementa cada operación declarada por Visitor.
- Element(Nodo):
Define una operación que le permite aceptar la visita de un Visitor.
- ConcretoElement(NodoAsignación):
Implementa la operación Aceptar que se limita a invocar su correspondiente método del Visitor.
- ObjectStructure(EstructuraDeObjetos-Programa):
Puede enumerar sus elementos y puede proporcionar una interfaz de alto nivel para permitir al Visitor visitar sus elementos.
Referencias:
- DesIgn Patterns: Elements of Reusable Object-Oriented Software Gamma, Helm, Johnson, Vlissides Editorial Addison-Wesley.
- www.kybele.escet.urjc.es/documentos/SI/Patrones/23_Visitor.ppt
No hay comentarios:
Publicar un comentario