Delegation

5,414 views

Published on

Descripción del patrón fundamental Delegation, que hace parte de los patrones de diseño.

más en: http://ingeniods.wordpress.com/2013/09/11/delegation-patron-de-diseno/ ‎

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,414
On SlideShare
0
From Embeds
0
Number of Embeds
4,635
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Delegation

  1. 1. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Patrones fundamentales: Delegation Delegar: “Dicho de una persona: Dar a otra la jurisdicción que tiene por su dignidad u oficio, para que haga sus veces o para conferirle su representación.” - RAE 2013 Este patrón se puede implementar de dos maneras Una de ellas es a través del uso de la composición La otra manera es por medio de uso de interfaces "Delegation is like inheritance done manually through object composition." [Lecture slides of course 601: "Object-Oriented Software Development" at the University of San Francisco ] "Delegación es como hacer herencia manualmente a través de la composición.”
  2. 2. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Patrones fundamentales: Delegation Delegar: “Dicho de una persona: Dar a otra la jurisdicción que tiene por su dignidad u oficio, para que haga sus veces o para conferirle su representación.” - RAE 2013 Uso de composición
  3. 3. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Describimos clases básicas Barco, Automovil, Helicoptero Las clases entre sí tienen métodos muy similares pero que implican comportamientos distintos Patrones fundamentales: Delegation No se declararon variables en ninguna de las clases, para que el ejemplo fuese más claro Aparte de los métodos iniciarMotor y andar, la clase Helicoptero tiene dos métodos adicionales descender y ascender
  4. 4. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Aparte de las clases básicas describimos la clase Sumergible Patrones fundamentales: Delegation Tenemos una clase especial de embarcación que son los sumergibles, por herencia tienen los métodos de Barco Además tiene los métodos descender y ascender
  5. 5. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Implementamos el patrón de delegación en una Clase llamada SuperAutomovil Patrones fundamentales: Delegation En el supuesto, nuestra clase SuperAutomovil debería extender de Sumergible, Automovil y Helicoptero, pero la herencia múltiple no se permite en Java nuestro SuperAutomovil extendiendo de Automovil puede andar por carretera, y con la instancia de Sumergible y Helicoptero puede sumergirse y volar respectivamente.
  6. 6. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Patrones fundamentales: Delegation Implementamos el patrón Delegation A pesar que SuperAutomovil expresa ciertas funcionalidades en su interfaz Lo único que hace SuperAutomovil es llamar un método de una de sus variables Así SuperAutomovil delega la ejecución de sus métodos a otros Objetos
  7. 7. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Patrones fundamentales: Delegation Delegar: “Dicho de una persona: Dar a otra la jurisdicción que tiene por su dignidad u oficio, para que haga sus veces o para conferirle su representación.” - RAE 2013 Uso de interfaces
  8. 8. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com Describimos una interfaz Motor la cual describe un método andar() Implementamos la interfaz Motor en dos clases MotorElectrico y MotorVapor Patrones fundamentales: Delegation Esta forma de implementar el patrón Delegation es un poco más compleja aunque más funcional La interfaz Motor describe la funcionalidad básica de un motor, pero no tiene ninguna manera de hacerlo
  9. 9. Ingenio DS Programando Soluciones http://ingeniods.wordpress.com En este caso el automovil no sabe que operaciones se realizarán al momento de andar Patrones fundamentales: Delegation La implementación del patrón la realizamos en la clase Automovil La funcionalidad de andar es delegada a la instancia de motor la cual tenga “instalada” el automovil en el momento que se invoque ese método En la línea seis el método se delegará a la instancia que tenga por defecto; en la línea ocho la implementación se delegará a un MotorElectrico

×