Crear subclases en un mecanismo pesado para capturar pequeñas variaciones. Por ejemplo, si se tiene una clase «Report» se podría tener varios tipos de informes
Una alternativa es tener una sola clase con instrucción «switch». Dependiendo del valor del campo, se puede invocar un método de forma dinámica. El nombre del método aparecería en:
- La creación de la instancia.
- La instrucción «switch».
- La definición del propio método.
La solución aplicando el patrón «Pluggable Selector» pasa por invocar el método dinámicamente:
Ahora hay una dependencia entre los métodos y el nombre de los métodos aunque elimina la instrucción «switch».
Uno de los principales problemas de aplicar este patrón es la trazabilidad del código. Sólo se debería usar el patrón «Pluggable Selector» cuando se de una situación bastante sencilla en la que un conjunto de subclases tengan un único método.
No hay comentarios:
Publicar un comentario