08`21`2019 - Heineken97/Portafolio GitHub Wiki

Clase 8

Creacionales

Singleton

Una sola instancia por usuario, un solo método por clase(el cual pregunta si la instancia existe), si existe use la ya creada, si no existe, crea una nueva y una única instancia.

Abstract Factory

Provee objetos dependientes o relacionados, mediante la especificación de clases concretas.

Ejemplo: Solicita Toyota -> Fabrica de carros->Crea todo(motor, puertas, vidrio ,ruedas, etc)

Aplica: cuando se necesita configurar al sistema con múltiples familias de productos. Ej: Una librería que crea objetos en Windows o Linux.

Estructurales

Facade

Provee una única interfaz para un conjunto de interfaces en sistema complejo. Una interfaz única de alto nivel que permite interactuar con el sistema completo, todos los clientes acceden a un único acceso, el cual interactúa con todas las clases. Aplica cuando una interfaz simple para un sistema complejo, cuando hay demasiadas interacciones necesarias y se busca desacoplar al cliente de las clases del sistema ocupando un único punto de encuentro para el cliente.

Adapter

Cliente <--> Adapter <-->Cliente

Genera que interfaces que no puedan trabajar en conjunto, puedan hacerlo mediante un adaptador, aplica cuando la interfaz de una clase existente no sirve para comunicar con otra que si es necesario que interactúen.

Observer

Se busca establecer dependencia, una a muchos entre objetos. Si el objeto observado cambia, los observadores se ejecutan, aplica cuando hay objetos que dependen de otro. Entre sus desventajas es que desacopla el cliente del observer y sus ventajas es enviar notificaciones masivas.