Patrones de diseño
Los patrones de diseño (design patterns) son soluciones habituales a problemas comunes en el diseño desoftware. Cada patrón es como un plano que se puede personalizar para resolver un problema de diseño particular de tu código.
Abstract Factory
(Creacional)
Provee una interfaz para crear familias de objetos relacionados, sin especificar su clase concreta (obtenemos polimorfismo). Es aconsejado usarlo cuando se prevé la creación de nuevas familias de objetos, pero es contraproducente cuando se quieren agregar nuevos objetos o cambiar los existentes ya que todas las clases se verían afectadas.
El punto importante es usar una interfaz
Builder
(Creacional)
Separa el proceso de construcción de un objeto (paso a paso), de su representación interna(forma en que sus partes están ensambladas). La idea del builder es por un lado, pedirle que vaya armando las partes que componen el objeto, sin saber de qué clases son, y además pedirle el producto final, sin saber cómo se ensamblan las partes que componen el objeto.
A medida que le vamos indicando que cree las partes, éstas se guardan en atributos del
Builder, o sea, en su estado.
Se apunta a tener una clase builder para construir un objeto, en la cual se construyen por separados los objetitos que forman al objeto y después se unen.
Singleton
(Creacional)
La intensión del singleton es tener una clase que se pueda instanciar una sola vez en el ambiente y que tenga un único punto de acceso en el sistema. Lo implementamos a través de una variable de instancia que se inicializa en forma tardía la primera vez que lo pide un usuario (por el getInstance()), y dejando el constructor privado.
La cosa es tener una clase que se puede instanciar solo una vez.
Strategy
(Comportamiento)
Es un objeto que define una familia de algoritmos, encapsula uno de ellos y los hace intercambiables. Permite que un algoritmo varié independientemente de los clientes que lo usan.
Es decir permite el cambio de comportamiento y propiedades de un objeto, se puede ver como un cambio parcial del tipo de objeto. Es un patrón de State que no cambia la funcionalidad, sino su co
mportamiento
mportamiento
Cualquier programa que ofrezca un servicio o función determinada, que pueda ser realizada de varias maneras, es candidato a utilizar el patrón Strategy. Puede haber cualquier número de estrategias y cualquiera de ellas podrá ser intercambiada por otra en cualquier momento, incluso en tiempo de ejecución.
La idea es tener una clase que define un algoritmo para hacer x cosa y este algoritmo puede variar la forma de hacer esa cosa. O sea internamente se intercambian los algoritmos.
Template method
Consiste en un algoritmo genérico utilizado por subclases que realizan de distinta forma algunas subtareas.
Se define un método que delega parte de la resolución en un método abstracto redefinido para cada una de las subclases.





No hay comentarios.:
Publicar un comentario