Introducción
En la ingeniería de software, un patrón de diseño es una solución general reusable para un problema que ocurre comúnmente en un contexto dado dentro del diseño de software. Un patrón de diseño es una descripción o plantilla para cómo resolver un problema, que puede ser usada en diferentes situaciones. Los patrones son las buenas practicas formalizadas, que el programador puede usar para resolver problemas comunes al momento de diseñar una aplicación o un sistema. Los patrones de diseño orientado a objetos, comúnmente muestran relaciones e interacciones entre clases u objetos, sin especificar las clases finales u objetos finales de la aplicación que están involucrados.
Factory Method (Método de fábrica)
El patrón de diseño Factory Method te permite crear objetos sin ser molestado en lo que es la clase actual que está siendo creada. El beneficio es que el codigo del cliente (codigo de llamado ) sólo puede "decir": "mándame un objeto que pueda hacer tal y tal cosa", sin saber cual es la clase actual que hace lo que necesita.
Hagamos un ejemplo para ver como funciona esto. Digamos que tienes una tienda de libros en línea y la gente viene a tu sitio a comprar estos libros. Cuando un cliente pide un libro, tu solo tienes que hacer que otro distribuidor de libros mande este libro directamente al cliente. Tienes muchos distribuidores que puedes escoger para enviar los libros a tus clientes directamente.
Desde que tienes muchos distribuidores, tienes la siguiente lógica para determinar que distribuidor elegir para enviar los libros a los clientes:
· Si el cliente esta en la costa Este, tu usaras DistribuidorCostaEste
· Si el cliente esta en el medio oeste, tu usaras DistribuidorMedioOeste
· Si el cliente esta en la costa Oeste, tu usaras DistribuidorCostaOeste
La clave está en que tu cliente no se preocupará de cual distribuidor tu usarás, porque ellos tendrán su libro a pesar de todo. Está completamente oculto desde el punto de vista del cliente.
Usando este ejemplo, tenemos el siguiente UML:
Esta lógica que decide cual distribuidor a ocupar está en el método BookStore.GetDstributor. El método retorna IDistributor con la lógica explicada anteriormente.
Este método es el Metodo de Fabrica que retorna un producto (un distribuidor). Cada distribuidor implementa la interfaz de IDistribuitor, el cual tiene el método ShipBook. El código de cliente solo dice "entregame un distribuidor que pueda enviar el libro (metodo ShipBook).
Prototype Method
El Patron de diseño Prototype, es también un patrón que usamos para recibir un objeto instanciado para una clase particular, al igual que los patrones Build y Factory. En vez de tener un objeto nuevo cada vez, podemos hacer una copia de un objeto ya existente de manera instantánea (el objeto que podemos usar como prototipo) y empezar a usarlo. De esa forma, no tenemos que repetir el proceso de creación para el objeto que estamos tratando de ocupar. La nueva copia del objeto es completamente independiente del objeto original, y puede ser usada para cualquier propósito que no signifique afectar al original. No hay limites para copiar los objetos existentes.
Conclusión
El método de fábrica o Factory Method, agiliza de manera eficaz el uso de métodos al momento de interactuar con una aplicación como la del ejemplo al hacer de manera aparte los distribuidores de manera automática con sus métodos propios agilizando el proceso que deberá tener en este caso el usuario. El metodo de prototipo nos permite agilizar a la hora de probar nuestros objetos y si esque estos se tienen que mejorar.
No hay comentarios:
Publicar un comentario