Patron Visitor:
Ejemplo Cliente y Operador
Este patrón permite definir una nueva operación sin cambiar las clases de los elementos sobre los cuales éste opera. Proporciona un marco genérico para soportar operaciones sobre un grupo de clases
Esquema de http://adrysmodelos.blogspot.com.es/ |
Tenemos varios tipos de usuario en una agencia de viaje: los operadores y los clientes.
Los operadores tienen un descuento del 30 % y los clientes tienen un 10 %.
Además reciben un regalo cuando se apuntan a la agencia, que es una Caja de Vino, Jamón y Queso para los operadores y una botella de vino para los clientes.
Añadir métodos, como nueva operación, a la clases para poder aplicar descuentos y regalos.
Esquema del Proyecto, siguiendo el patron Visitor:
- Clase UsuarioVisitor (Visitor):
A continuación las clases que heredan de visitor, y donde se desarrolla el codigo de los métodos:
-Clase UsuarioDescuentoVisitor
-Clase UsuarioPrintVisitor
-Clase UsuarioRegaloVisitor
Ahora definimos la parte de los Elementos y Elementos Concretos:
Clase Usuario (Element):
->
Clase Operador:
->
Clase Cliente:
->
-Programa Principal
-
Salida por pantalla:
Fuente: enlace de descarga codigo de ejemplo
Referencias:
http://www.codeproject.com/Articles/12508/Dude-are-you-still-programming-using-if-then-else
http://adrysmodelos.blogspot.com.es/