Donde manda patrón…

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

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).

State-Design-Pattern

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.

State Design Pattern2

A continuación declaramos la clase que realizará la transición entre estados.

state-design-pattern3

Ahora crearemos la clase Process, en esta clase definiremos las transacciones que están permitidas entre estados.

state-deisgn-pattern4

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.

Jose_GonzálezJosé 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.

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