Como eliminar los Select Case ( switch ) usando POO y el patrón Strategy.
La orden Select Case (o Switch en otros lenguajes de programación), tiene el inconveniente de que cada vez que tengamos que añadir más casos, supone que tengamos que modificar el código ya escrito anteriormente.
Aunque ya lo he comentado en otras entradas (ver referencia), voy a hacer un ejemplo simple para que veais el mecanismo de como se sustituye usando clases y el patrón Strategy:
Vamos a partir de este simple ejemplo:
->
El bucle Select Case lo vamos a sustituir por la siguiente estructura de clases:
Estructura del proyecto:
Código de las Clases:
Clase Switch:
->
Fijaos en la opcion "add" y "remove" que nos van a permitir añadir o quitar opciones.
Clase Interface:
->
Clase Opcion1:
->
Las demas opciones, son muy parecidas, vease el codigo fuente completo.
Programa Principal: Mmain
->
Bueno, y pensareis ¿es mucho trabajo y más código para hacer lo mismo? ¿que ventajas obtengo?
La primera ventaja que teneis es que el código es fácilmente ampliable, ya que simplemente se le vais que tener que nuevas clases "opciones".
Y otra muy importante, durante la ejecución del programa, podemos añadir o quitar dinamicamente opciones, cosas que es imposible hacerlo usando un Select Case.
Próximamente os enseñaré un ejemplo de esto último que os comento "añadir o quitar dinámicamente en ejecución, opciones".
Codigo fuente completo: alojada en Box.Com
Entradas Relacionadas:
http://jsbsan.blogspot.com.es/2014/01/combinar-patrones-de-diseno-ejemplo-de.html