Patrones Go F
Patrones Go F
PATRONES
1
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRONES
3
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON ESTRUCTURAL: Adaptador-Wrapper.
Problema:
• ¿Cómo resolver interfaces incompatibles, o proporcionar una interfaz estable para
componentes parecidos con diferentes interfaces?
• Solución
Convierta la interfaz de una clase en otra interfaz que es la que esperan los clientes,
permite que cooperen clases que de otra forma no podrían cooperar por tener
interfaces incompatibles.
• Consecuencias
• Posibilidad de reutilizar las clases que han sido pensadas para este Objetivo pero
que tenían interfaces no compatibles con el sistema en desarrollo.
• Un adaptador de objetos permite adaptar una clase y sus subclases, puede
funcionar para varios adaptables.
4
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON ESTRUCTURAL: Adaptador-Wrapper
La filosofía de Adapter, permite establecer una capa intermedia que permita comunicarse
a dos clases que de otro modo no podrían hacerlo, realizando una adaptación de la
interfaz de la clase que proporciona el servicio a la que la solicita.
5
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRONES ESTRUCTURALES PATRÓN PROXY
Problema:
Es un sustituto de otro objeto, para controlar el acceso a él
Solución
Convierta la interfaz de una clase en otra interfaz que es la que esperan los clientes,
permite que cooperen clases que de otra forma no podrían cooperar por tener
interfaces incompatibles.
Consecuencias
• Posibilidad de reutilizar las clases que han sido pensadas para este Objetivo pero
que tenían interfaces no compatibles con el sistema en desarrollo.
• Un adaptador de objetos permite adaptar una clase y sus subclases, puede
funcionar para varios adaptables.
Usos
Este patrón es ampliamente utilizado en frameworks cómo Hibernate o Spring AOP,
permitiendo capturar las llamadas a objetos POJO y permitiendo insertar en ellas
capacidades de persistencia para el caso de Hibernate, u otro tipo de aspectos como
gestión de seguridad o transacciones para Spring AOP.
6
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRONES ESTRUCTURALES PATRÓN PROXY
7
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON DE CREACION Factoría
Problema:
¿Quién es el responsable de la creación de objetos cuando existen consideraciones
especiales, como una lógica de creación compleja o el deseo de separar las
responsabilidades de la creación para mejorar la cohesión?
Solución:
Cree un objeto Fabricación Pura denominado Factoría (Factoría Concreta) que resuelva la
creación cuando existan consideraciones especiales.
Consecuencias:
• Separar la responsabilidad de la creación compleja en objetos de apoyo.
• Ocultar la lógica de creación potencialmente compleja.
• Permitir introducir estrategias para mejorar el rendimiento de la gestión de
memoria.
Ejemplos:
Se puede aplicar cuando:
• Es necesario acceder a algún recurso para la creación y configuración de un objeto.
• No conocemos hasta el momento preciso de la instanciación qué tipo concreto de
objeto se va a instanciar.
8
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON DE CREACION Factoría: Ejemplo
Participantes
• Producto: Define la interfaz de los objetos que la Factoría crea.
• ProductoConcreto: Define la interfaz del Producto.
• Creador: Declara el método factoría que devuelve un objeto de tipo Producto
• CreadorConcreto: Sobreescribe el método Factoría para que devuelva un
ProductoConcreto
Colaboraciones
El Creador busca entre las subclases y devuelve una instancia apropiada de
ProductoConcreto.
Consecuencias
Los métodos Factoría eliminan la necesidad de ligar clases específicas de la aplicación a
nuestro código. Dos consecuencias a tener en cuenta son:
• Proporciona enganches para las subclases. 9
• Conexión jerárquica de clases paralelas.
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON CREADOR: SINGLETON
Problema:
¿Cómo podemos asegurar que una clase tiene exactamente una única instancia y que ésta
sea fácilmente accesible?
Solución:
Defina un método estático de la clase que devuelva el singleton.
Consecuencias:
• Permite el manejo de objetos únicos y que sean accesibles a otros objetos.
• Acceso controlado a la única instancia.
Ejemplos:
Se solicita generar un historial de los eventos ejecutados por 3 usuarios del sistema, estos
eventos se generan cada vez que alguno de los usuarios presiona un botón determinado de
un panel de opciones, este historial debe contener la fecha y hora de ejecución del evento,
además del usuario y opción presionada.
10
Diplomado de Bases de Datos - Modelado Orientado a Objetos
PATRON CREADOR: SINGLETON
11