SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
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.”
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
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
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
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.
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
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
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
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

Contenu connexe

Similaire à Delegation

Spring Inyección De Dependencias
Spring Inyección De DependenciasSpring Inyección De Dependencias
Spring Inyección De Dependenciasjose diaz
 
Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...Omar S. Gomez
 
Monografia patrones de diseño proxy (3.0)
Monografia   patrones de diseño proxy (3.0)Monografia   patrones de diseño proxy (3.0)
Monografia patrones de diseño proxy (3.0)finger10
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizadosHéctor Curbelo Barrios
 
mootools y sexyimages
mootools y sexyimagesmootools y sexyimages
mootools y sexyimagesCW
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de AndroidJavier Muñoz
 
Iniciacion_Orientacion_A_Objetos
Iniciacion_Orientacion_A_ObjetosIniciacion_Orientacion_A_Objetos
Iniciacion_Orientacion_A_Objetososancalv
 
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...JsuCdueo
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevjtk1
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxErickCarlos14
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaJerilee Dueñas Rengifo
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaCommunity Managers Latam
 

Similaire à Delegation (20)

Clase numero 6
Clase numero 6Clase numero 6
Clase numero 6
 
Spring Inyección De Dependencias
Spring Inyección De DependenciasSpring Inyección De Dependencias
Spring Inyección De Dependencias
 
Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...Automatización en el desarrollo de software a través de lenguajes específicos...
Automatización en el desarrollo de software a través de lenguajes específicos...
 
Monografia patrones de diseño proxy (3.0)
Monografia   patrones de diseño proxy (3.0)Monografia   patrones de diseño proxy (3.0)
Monografia patrones de diseño proxy (3.0)
 
Introducción a Angular JS
Introducción a Angular JSIntroducción a Angular JS
Introducción a Angular JS
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizados
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
mootools y sexyimages
mootools y sexyimagesmootools y sexyimages
mootools y sexyimages
 
Java jaucito
Java jaucitoJava jaucito
Java jaucito
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
 
Clase1
Clase1Clase1
Clase1
 
Android
AndroidAndroid
Android
 
Iniciacion_Orientacion_A_Objetos
Iniciacion_Orientacion_A_ObjetosIniciacion_Orientacion_A_Objetos
Iniciacion_Orientacion_A_Objetos
 
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...
02. Diseño de Aeronaves Computarizado Para Estudiantes de Ingeniería autor Al...
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Mapa conceptual
Mapa conceptual Mapa conceptual
Mapa conceptual
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptx
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españa
 
Webinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españaWebinar interlat apps_2012_carlos_a-perez_españa
Webinar interlat apps_2012_carlos_a-perez_españa
 

Plus de Mauro Gomez Mejia (20)

Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
2011 horizon-report
2011 horizon-report2011 horizon-report
2011 horizon-report
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
My batis
My batisMy batis
My batis
 
Orm
OrmOrm
Orm
 
MVC
MVCMVC
MVC
 
2010 horizon-report
2010 horizon-report2010 horizon-report
2010 horizon-report
 
Persistencia de objetos con Hibernate
Persistencia de objetos con HibernatePersistencia de objetos con Hibernate
Persistencia de objetos con Hibernate
 
Sql injection
Sql injectionSql injection
Sql injection
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
Jmerlin php
Jmerlin phpJmerlin php
Jmerlin php
 
Comunicacion Java Envio De Datos Al Puerto Paralelo
Comunicacion Java Envio De Datos Al Puerto ParaleloComunicacion Java Envio De Datos Al Puerto Paralelo
Comunicacion Java Envio De Datos Al Puerto Paralelo
 
Redes De Computadores
Redes De ComputadoresRedes De Computadores
Redes De Computadores
 
Java Mail
Java MailJava Mail
Java Mail
 
Java A Tope J2 Me (Java 2 Micro Edition)
Java A Tope  J2 Me (Java 2 Micro Edition)Java A Tope  J2 Me (Java 2 Micro Edition)
Java A Tope J2 Me (Java 2 Micro Edition)
 
Java 2D
Java 2DJava 2D
Java 2D
 
Manual Jsf
Manual JsfManual Jsf
Manual Jsf
 
Programación
ProgramaciónProgramación
Programación
 
Lo Nuevo En W Server
Lo Nuevo En W ServerLo Nuevo En W Server
Lo Nuevo En W Server
 

Delegation

  • 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. 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. 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. 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. 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. 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. 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. 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. 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