Hoy voy a hablaros sobre uno de los errores más comunes que cometemos a menudo, tanto arquitectos como desarrolladores. Se trata del uso de la “fuerza bruta” en la solución de problemas que encajan perfectamente con algún design pattern.
Design Patterns
¿Qué es un design pattern? Ahí va un poco de teoría ¡¡Prometo no alargarme demasiado!!
Pues, como su nombre indica, es un patrón de diseño. Es decir, un mecanismo/respuesta para un problema típico de software: un portal web, una app, una web etc… independientemente del lenguaje o tecnología que usemos. Dicho de otra manera, es una solución reusable para un problema determinado.
Hay muchos patrones de diseño en ingeniería de software y todos quedan clasificados dentro de algunos de los siguientes bloques: creational patterns, structural patterns o behavioral patterns.
En este artículo presentaré uno del grupo behavioral patterns; el state design pattern.
State design pattern
No es raro encontrar en nuestros desarrollos subsistemas o procesos que requieren el uso de este patrón. Para presentar este patrón vamos a analizar un pequeño proceso (este podría ser el proceso de apertura de un puerto o el proceso de vida de un pedido).
En este proceso identificamos
- 4 estados: Cerrado, Abierto, Pausado y Acabado
- 5 tipos de transiciones: Pausar, Abrir, Cerrar y Salir
Cuando nos encontramos con un proceso como el anterior en nuestro sistema y no hemos realizado un planteamiento adecuado puede costar identificar un patrón de diseño, debemos estar atentos a posibles indicios. Esto nos ayudará a identificar un escenario en el que aplicar el patrón.
Una posible implementación para el State design pattern puede ser una state machine.
Lo primero que haremos es crear dos enum, uno para los estados del proceso y otro para los comandos de transición.
A continuación declaramos la clase que realizará la transición entre estados.
Ahora crearemos la clase Process, en esta clase definiremos las transacciones que están permitidas entre estados.
Espero que con este artículo os animéis a usar patrones de diseño e intentéis buscarlos en cada rincon de vuestros proyectos!
Descubre cómo SOGETI puede ayudarte en el desarrollo de proyectos.
José González es ingeniero titulado por la Universidad Politécnica de Cataluña y arquitecto de soluciones con más de 10 años de experiencia en proyectos IT orientados a negocio, especializado en tecnologías Microsoft (.net, Dynamics NAV y SharePoint) y en la prestación de servicios de gestión en proyectos informáticos de diversa índole tecnológica y en diversos sectores e industrias.
0 comments on “Donde manda patrón…”