Los patrones de diseño son unas técnicas para resolver problemas comunes en el
desarrollo de software y otros ámbitos referentes al diseño de interacción o
interfaces.
Caracteristicas:
Soluciona un
problema
Es un concepto
probado
La solución no es
obvia
Describe participantes y relaciones entre
ellos
Repetición, adaptabilidad y
utilidad
Tipos de patrones de
diseño:
Patrones de
creación
Separan la forma en que se crean los objetos, para tratar las clases a crear de forma genérica.
Este patrón proporciona una interface
para crear familias de objetos
relacionados o dependientes sin
especificar sus clases concretas.
Su propósito es definir una
interface para crear
objetos donde se delega la
creación de las instancias
a las subclases.
Asegura que sólo se cree una
instancia de la clase y provee
un punto global de acceso a
ésta.
Este patrón es útil cuando se quiere tener
solamente un objeto único instanciado (Ej: Cola
de impresión, Conexión a BD, etc).
Este es un patrón bastante simple pero muy útil, el cual
nos permite crear objetos complejos a través de uno más
simple.
Esto desde luego que se hace una tarea
tediosa y cansada, sobre todo cuando
tenemos que crear de manera frecuente
los objetos.
El patrón Prototype basa su funcionalidad en la
clonación de objetos, estos nuevos objetos son
creados mediante un pool de prototipos
elaborados previamente y almacenados.
Este patrón nos ayuda también a ocultar
la estrategia utilizada para clonar un
objeto.
Este es un patrón muy utilizado cuando se requiere trabajar con
una gran cantidad de objetos, los cuales son computacionalmente
caros de crear,
La ventaja que brinda este patrón es que nos
permite reutilizar los objetos con el fin de
evitar la tarea de crearlos cada vez que
nuestra aplicación los requiere
Patrones de
comportamiento
Ayudan a definir la comunicación e
interacción de de los objetos.
Define una dependencia de uno a muchos entre objetos así
que cuando un objeto cambia de estado , todos los objetos que
dependen de él son notificados para que se actualicen
automáticamente
Observer es uno de los principales patrones
de diseño utilizados en interfaces gráficas de
usuario (GUI), ya que permite desacoplar al
componente gráfico de la acción a realizar.
Este patrón de diseño permite recorrer una estructura
de datos sin que sea necesario conocer la estructura
interna de la misma.
Es especialmente útil
cuando trabajamos con
estructuras de datos
complejas
El patrón de diseño Command nos permite ejecutar
operaciones sin conocer los detalles de la
implementación de la misma.
Una de las ventajas que ofrece este patrón es
la de poder crear cuántos comandos
requerimos y encapsularlos bajo una
interface de ejecución.
Patrones
estructurales
Cómo se combinan clases y objetos para formar nuevas estructuras y proporcionar funciones.
Compone objetos en estructuras
arborescentes para representar
jerarquías TODO-Partes
Permite manejar indistintamente objetos
individuales y composiciones de objetos
Convierte la interface de una clase en
otra clase en otra interface que
cliente espera.
Permite a las clases trabajar juntas
ya que de otra manera no lo
podrían hacer debido a que las
interfaces son incompatibles
Bridge es un patrón de diseño utilizado para desacoplar una
abstracción de su implementación de manera que las dos puedan ser
modificadas por separado sin necesidad de modificar la otra
Bridge es muy utilizado cuando dos piezas de
software están relacionadas directamente, sin
embargo, existe una gran probabilidad de que una de
las dos partes cambie y esto puede llevar a la
necesidad de modificar la pieza del otro lado.