For faster navigation, this Iframe is preloading the Wikiwand page for Delegación (informática).

Delegación (informática)

La delegación es un mecanismo, usado en la programación orientada a objetos, por medio de la cual una clase delega en otra una determinada funcionalidad.

Se aplica como sustitución a la herencia. Como valor añadido, permite, combinado con la herencia múltiple de interfaces, sustituir la herencia múltiple de clases en los lenguajes donde no se permite esta última directamente. Además, los conflictos de nombres que se plantean en la herencia múltiple se resuelven manualmente con esta técnica.

Diferencias con Herencia

[editar]

La delegación se caracteriza por "reutilización selectiva", en cambio en herencia es un "todo o nada". Es cierto que en composición y delegación se escribe mucho más que en herencia, ya que en herencia se hereda de forma declarativa, y esto simplifica la tarea del programador en ciertos casos. Se habla de la herencia como Caja Blanca y de Composición y delegación como Caja Negra. Es conveniente usar herencia cuando la relación de "Es Un" es clara u obvia.

Uso

[editar]

Es una buena costumbre usar la delegación en lugar de la herencia si no es necesario hacer conversiones hacia arriba. En general, es mejor cualquier tipo de composición, si es factible, en lugar de la herencia. Sin embargo solo es una buena elección si simplifica más de lo que complica.

Si el lenguaje no soporta directamente este mecanismo se puede emular haciendo una composición de clases donde un objeto delegador (de nivel más próximo al cliente) contenga en un objeto delegado (más lejos del cliente), en el que delegue determinada funcionalidad. Esto se implementa añadiendo un miembro de la clase delegada en la clase delegadora e implementando los métodos públicos que tenga la clase delegada en la clase delegadora. Dichos métodos simplemente deben realizar una llamada con los mismos parámetros al método equivalente de la clase delegada.

Puede usarse también como una herencia dinámica si se hace sobre un objeto cuyo tipo (o clase) se decide en tiempo de ejecución.

El concepto de delegación se usa en la resolución de ciertos Patrones de Diseño como los patrones State, Strategy y Visitor.

Bibliografía

[editar]

Design Patterns. Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley Professional Computing Series, 1998

{{bottomLinkPreText}} {{bottomLinkText}}
Delegación (informática)
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?