Aplicación del patrón Visitor

En este patrón participan un Visitor (nodo visitante) en el que normalmente se declaran de forma abstracta los métodos para visitar un elemento concreto en mi caso está clase será la clase Render. Después como hijos tenemos ConcreteVisitors (visitantes de distintos tipos) que implementan las operaciones declaradas en Visitor. En mi caso son DocHTMLRender, DocTeXRender y GTKRender. Estas clases tendrán además subclases para cada uno de los tipos de preguntas:

  • Preguntas a desarrollar.
  • Preguntas de elección múltiple con una o varias respuestas correctas.
  • Pregunta de entrada de texto.
  • Pregunta de elección en línea.

Otro participante es Element, que define una operación abstracta llamada Accept, en mi caso será la clase Question. Como hijos estarán los ConcreteElement, que implementan la operación Accept teniendo como argumento un visitor; serán los diferentes tipos de preguntas.

Por último, hay un ObjectStructure, que puede enumerar elementos concretos y facilita una interfaz de alto nivel que permite al visitante visitar sus elementos, en casos se puede tratar de un Composite. Este rol lo hará la clase Collection que serán listas de preguntas. De este modo, podremos previsualizar una o más preguntas.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s