Patron Adapter
-
Upload
beatriz-adriana-canul-leon -
Category
Documents
-
view
253 -
download
1
description
Transcript of Patron Adapter
PATRON ADAPTER Permite la cooperación entre clases para
extender sus funcionalidades a clases de diferentes tipos, que no pueden usarlas por mecanismos comunes como la herencia...
Permite establecer un puente entre la clase incompatible con el resto de las clases que quieren usar su funcionalidad, adaptando dichas funcionalidades con el sistema
PARTICIPANTES… Objetivo (Forma)Define la interfaz específica del dominio que usa el Cliente.
Cliente (EditorDeDibujo)Colabora con objetos que se ajustan a la interfaz Objetivo.
Adaptable (VistaTexto)define una interfaz existente que necesita ser adaptada.
Adaptador (FormaTexto)adapta la interfaz de adaptable a la interfaz Objetivo.
APLICABILIDADDebería usarse el patrón Adapter cuando:
Se quiere usar una clase existente y su interfaz no concuerda con la que necesita.
Se quiere crear una clase reutilizable que coopere con clases no relacionadas o que no han sido previstas
(solamente en el caso de un adaptador de objetos) es necesario usar varias subclases existentes, pero no resulta práctico adaptar su interfaz heredando de cada una de ellas.
DIAGRAMA O ESTRUCTURA… Un adaptador de clases usa la herencia múltiple para
adaptar una interfaz a otra
Se necesita crear una subclase de adaptable y hacer que el Adaptador se refiera a la subclase en vez de a la clase Adaptable en sí.
EJEMPLO
…
Este sistema gira en torno a los motores, utilizamos la herencia , pero no todos ellos se comportan de la misma manera como es el caso del Motor Eléctrico, por tal razón no podemos ponerlo a heredar directamente de la clase Motor, ya que los métodos que esta nos provee no serian útiles para esta clase...
En este punto es donde hacemos uso de una clase Adapter que serviría de puente entre la clase Padre y La Clase que debe ser adaptada
Ejemplo codigo…
CLASE PADRE
Esta clase hereda de la clase padre, es decir no usa el patrón adapter, lo
cual veremos en la siguiente imagen
Esta es la clase adaptable, como vemos a pesar de ser
un motor posee características
muy diferentes a los demás tipos de
motores del sistema, por lo tanto no puede heredar directamente
de la clase Motor
Aquí se establece el puente por medio del
cual la clase incompatible puede ser utilizada,
hereda de la clase Motor y por medio de la
implementación dada , realiza la comunicación con la clase a adaptar usando para esto una
instancia de la misma...
Esta clase representa el Cliente del sistema que usa los diferentes tipos de
motores.
Por medio del patrón Adapter llamamos a los
mismos métodos encender(), acelerar() o apagar()
PATRÓN FACADE O FACHADA.
El Patrón Fachada se caracteriza por ser una puerta de entrada hacia otro subsistema. Provee una interfaz unificada y sencilla que haga de intermediaria entre un cliente y una interfaz o grupo de interfaces mas complejas.
Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema.
Reduce la complejidad
APLICABILIDAD: Se usa para proporcionar una interfaz
sencilla para un sistema complejo.
Se quiere desacoplar un subsistema de sus clientes u otros subsistemas, haciéndolo mas independiente y portable.
Se quiera dividir los sistemas en niveles: las fachadas serian el punto de entrada a cada nivel.
Diagrama: Estructurar un sistema ayuda a reducir la complejidad.
Un típico objetivo de diseño es minimizar la comunicación y dependencias entre subsistemas. Un modo de lograr esto es introduciendo un objeto fachada que proporcione una interfaz única y simplificada para los servicios mas generales del subsistema.
Ejemplo código…