1. Patrones de DiseñoPara el Desarrollode Software
Creacionales
Estos nos proveen soluciones para la creación de
objetos, permitiéndonos hacer un sistema
independiente de cómo sus objetos son creados.
Estos son los dos más usados:
Estructurales
Su función es determinar como las clases y objetos se
combinan para formar estructuras
Estas estructuras permitirán que se agreguen nuevas
funcionalidades
Los patrones GoF que se clasifican como Estructurales son:
Composite, Facade, Adapter, Proxy, Decorator y Bridge
Comportamiento
Tratan a los objetos que manejan tipos particulares de
acciones dentro de un programa. Éstos encapsulan
procesos debe ejecutarse dentro de la funcionalidad de
la aplicación, como interpretar un lenguaje, completar
una petición, moverse a través de una secuencia o
implementar un algoritmo
Singleton
Nos permite garantizar
que una clase solo tenga
una única instancia y
proporciona un punto de
acceso global a ella.
Ejemplos de uso:
Podemos usarlo para leer
configuraciones, cargar
pool de conexiones a la
base de datos, registro de
logs, colas de impresión
etc.
Factory
Method
Es un método que nos
permite crear instancias
de objetos de un tipo
determinado,
encapsulando así la
creación de dichos
objetos. Ejemplos de uso:
Podrías implementar una
fábrica para obtener un
adaptador de una base de
datos (Postgres, Oracle,
MySQL) o un método de
pago de una tienda en
línea (Paypal, Tarjeta de
Crédito, Efectivo).
Composite
Se utiliza cuando un componente
del sistema puede ser un objeto
individual o una colección de
objetos Modela una estructura
de árbol en donde un elemento
tiene elementos del mismo tipo
Una composición puede ser una
colección de objetos en donde
cada uno de estos objetos puede
ser una composición o un objeto
sencillo Una interfaz o clase
abstracta define lo que todos los
objetos deben hacer ya sea que se
trate de una hoja o una
composición La hoja
implementa lo que debe hacer,
mientras que la composición
adicionalmente debe manejar la
colección
Facade
Su objetivo es ocultar la
complejidad de un
sistema y proporcionar
una interfaz al cliente
que accede al sistema
Se compone de una
clase que ofrece
métodos sencillos para
el cliente y la
implementación se da
en otras clases
State
Es un patrón de diseño
de comportamiento
que permite a un
objeto alterar su
comportamiento
cuando su estado
interno cambia. Parece
como si el objeto
cambiara su clase.
Iterator
La idea central del patrón
Iterator es extraer el
comportamiento de
recorrido de una colección
y colocarlo en un objeto
independiente
llamado iterador. Además
de implementar el propio
algoritmo, un objeto
iterador encapsula todos
los detalles del recorrido,
como la posición actual y
cuántos elementos
quedan hasta el final.
Debido a esto, varios
iteradores pueden recorrer
la misma colección al
mismo tiempo,
independientemente los
unos de los otros.