Patrones estructurales para software
Patrones estructurales
• Lo fundamental son las relaciones de uso entre objetos • Se trata de conseguir que cambios en los requisitos de la aplicación no ocasionen cambios en las relaciones entre los objetos • Las relaciones de uso están determinadas por las interfaces quesoportan los objetos
© JPM, UCM 2000
Patrones de creación
2
1
Patrones estructurales
• Tipos de patrones estructurales
#
De clase: usa herencia para componer interfaces o implementaciones
– Herencia múltiple: una clase que hereda de otras combina sus
propiedades
– Class Adapter
#
De objeto: composición de objetos en tiempo de ejecución
– Object Adapter – Bridge –Composite – Decorator – Facade – Flyweight – Proxy
© JPM, UCM 2000
Patrones de creación
3
Adaptador
• Propósito:
Convertir la interfaz de una clase en otra que esperan los clientes
• Otras denominaciones:
# #
Class Adapter y Object Adapter Wrapper (Envolvente)
• Motivación
#
Para reutilizar una clase de una biblioteca aunque su interfaz no correspondiera exactamente conel que requiere una aplicación concreta
–
En el ejemplo, la clase TextView En el ejemplo, la operación CreateManipulator()
Patrones de creación 4
#
Para añadir funcionalidad que la clase reutilizada no proporciona
–
© JPM, UCM 2000
2
Adaptador
La clase TextShape adapta T e x t V i e w a la interfaz Shape, de manera que el editor g r á f i c o D r a w i n g E d i t o r p u ed e r e u t i l i z a r l a c l a s e T e x t V i e w, q u e d e o t r a m a n e r a s e r í a incompatible. TextShape se puede hacer de dos maneras: 1 ) H e r e d a n d o l a i n t e r f a z S h a p e y l a c l a s e T e x t V i e w ( Adaptador de clases ) 2 ) C o m p o n i e n d o u n o b j e t o T e x t V i e w e n u n T e x t S h a p e, q u e s e i m p l e m e n t a u t i l i z a n d o e l ob j e t o T e x t V i e w ( Adaptador de objeto ) © JPM, UCM 2000 Patrones de creación 5
Adaptador
• Aplicación
#
#
#
Para usar una clase existente cuya interfaz no se corresponde con el que se necesita Para crear una clase reutilizable que coopera con clases imprevistas (esto es, que no tienen necesariamente interfaces compatibles) El adaptador de objeto sólo: para utilizar variassubclases existentes para las que sería poco práctico adaptar su interfaz heredando de cada una. Un adaptador de objeto puede adaptar la interfaz de su clase padre
© JPM, UCM 2000
Patrones de creación
6
3
Adaptador
• Esquema, participantes y colaboraciones (Adaptador de clase Adaptador clase)
# #
Los clientes llaman a las operaciones de un objeto Adaptador. A su vez, elAdaptador llama a las operaciones heredadas de la clase Adaptada que tratan la petición
Define una interfaz existente que necesita
Define la interfaz específica al dominio que utiliza el cliente
adaptación
Adapta la interfaz de A d a p t e e a la interfaz Target
© JPM, UCM 2000
Patrones de creación
7
Adaptador
• Esquema, participantes y colaboraciones (Adaptador de objeto Adaptadorobjeto)
# #
Los clientes llaman a las operaciones de un objeto Adaptador. A su vez, el Adaptador llama a las operaciones del Adaptado que tratan la petición
Define una interfaz existente que necesita
Define la interfaz específica al dominio que utiliza el cliente
adaptación
Adapta la interfaz de A d a p t e e a la interfaz Target
© JPM, UCM 2000
Patrones de creación
8
4Adaptador
• Consecuencias
#
Un adaptador de clase:
–
Adapta una clase Adaptada a una interfaz Objetivo reutilizando los métodos de la clase Adaptada. Por tanto, no funcionará cuando se quieran adaptar la clase adaptada y todas sus subclases – La clase adaptadora puede redefinir algunos de los métodos de la clase adaptada – Sólo se introduce un objeto, y no hace falta delegar en otro...
Regístrate para leer el documento completo.