fbpx
Wikipedia

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

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

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

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

  •   Datos: Q1184069

delegación, informática, delegación, mecanismo, usado, programación, orientada, objetos, medio, cual, clase, delega, otra, determinada, funcionalidad, aplica, como, sustitución, herencia, como, valor, añadido, permite, combinado, herencia, múltiple, interfaces. La delegacion es un mecanismo usado en la programacion orientada a objetos por medio de la cual una clase delega en otra una determinada funcionalidad Se aplica como sustitucion a la herencia Como valor anadido permite combinado con la herencia multiple de interfaces sustituir la herencia multiple de clases en los lenguajes donde no se permite esta ultima directamente Ademas los conflictos de nombres que se plantean en la herencia multiple se resuelven manualmente con esta tecnica Diferencias con Herencia EditarLa delegacion se caracteriza por reutilizacion selectiva en cambio en herencia es un todo o nada Es cierto que en composicion y delegacion se escribe mucho mas 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 Composicion y delegacion como Caja Negra Es conveniente usar herencia cuando la relacion de Es Un es clara u obvia Uso EditarEs una buena costumbre usar la delegacion en lugar de la herencia si no es necesario hacer conversiones hacia arriba En general es mejor cualquier tipo de composicion si es factible en lugar de la herencia Sin embargo solo es una buena eleccion si simplifica mas de lo que complica Si el lenguaje no soporta directamente este mecanismo se puede emular haciendo una composicion de clases donde un objeto delegador de nivel mas proximo al cliente contenga en un objeto delegado mas lejos del cliente en el que delegue determinada funcionalidad Esto se implementa anadiendo un miembro de la clase delegada en la clase delegadora e implementando los metodos publicos que tenga la clase delegada en la clase delegadora Dichos metodos simplemente deben realizar una llamada con los mismos parametros al metodo equivalente de la clase delegada Puede usarse tambien como una herencia dinamica si se hace sobre un objeto cuyo tipo o clase se decide en tiempo de ejecucion El concepto de delegacion se usa en la resolucion de ciertos Patrones de Diseno como los patrones State Strategy y Visitor Bibliografia EditarDesign Patterns Elements of Reusable Object Oriented Software Erich Gamma Richard Helm Ralph Johnson John Vlissides Addison Wesley Professional Computing Series 1998 Datos Q1184069Obtenido de https es wikipedia org w index php title Delegacion informatica amp oldid 126556781, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos