Software design patterns
Adapter & Bridge
30, Sep 2015
Adapter pattern
- Permite a 2 interfaces diferentes trabajar juntas
*Es un patrón estructural de composición o agregación de clases y objetos.
- La Clase adaptador permite el uso de la interfaz disponible y la interfaz destino(objetivo).
Cualquier clase puede trabajar junto a otra mientras el Adaptardor resuelva el problema para que todas las clases implementen cada uno de los metodos definidos por la interfaz compartida.
implements interface *
Sobre la Interfaces
Interfaz
Clase abstracta
Si tenemos una clase llamada “Casa”, esa clase puede implementar una interfaz llama “AireAcondicionado” . Teniendo en cuenta que aire acondicionado no es realmente una parte de la casa, y la relación no es tan fuerte como la relación entre una clase “Apartamento” que derive de una clase “Casa”
- Julio Castellanos (2015) Principio SOLID: Abierto-cerrado (OCP)
¿ Cuando usar el Adapter ?
Cuando el cliente espere una interfaz objetivo
Diagrama de clase Adapter pattern
Demo
Ejemplo del patrón Adapter en JAVA
The Bridge pattern
The Bridge pattern
Desacopla una abstracción de su implementación para que puedan variar independientemente.
- Este patrón generalmente muy mal explicado
- Muchos autores lo explican de forma diferente
The Bridge pattern
2 capas de abstracción entre clases
1 clase es independiente sobre la otra
¿ Cuando usar el Bridge ?
Cuando se quiere cambiar las clases abstractas y las clases concretas de forma independiente.
Úselo cuando:
- La primera clase abstracta defina las reglas (Abstract TV)
- Las clases concretas agregan reglas adicionales (Concrete TV )
- Una clase clase abstracta tiene una referencia al dispositivoy define los métodos abstractos que debe ser definidos (Abstract Remote )
- La clase concreta del Remote define los métodos abstractos requeridos...
Cuando...
Demo
Ejemplo del patrón Bridge en JAVA
Software design patterns: Adapter & Bridge
By Julio César
Software design patterns: Adapter & Bridge
How to use the adapter & bridge pattern with Java.
- 886