Delegación es la acción y efecto de delegar (dar a una persona o grupo las facultades y poderes necesarios para representar a otra u otras). Aquel que representa a otro se conoce como delegado: su cargo y su oficina reciben el nombre de delegación.
El término también se utiliza para nombrar al equipo o grupo de trabajo que representa a una comunidad o un país. Por ejemplo: «La delegación chilena llegó a suelo africano después de catorce horas de vuelo», «Una delegación china se entrevistó con el presidente uruguayo para analizar un posible tratado bilateral de comercio», «El gobernador se mostró muy enojado con la delegación de la compañía norteamericana que intentó violar las normativas internas».
Delegación en el derecho administrativo
En el campo del derecho administrativo, la delegación es la traslación de un órgano superior a otro inferior del ejercicio de una competencia, aunque el delegante mantiene la titularidad de la misma.
La delegación se concreta a través de un acto administrativo y puede ser revocada por el delegante.
El concepto en México y en España
En México, la delegación es una división política y administrativa dentro de una ciudad. La Ciudad de México, por ejemplo, se divide en dieciséis delegaciones que, a su vez, se subdividen en colonias y barrios.
En España, en tanto, se habla de Delegaciones del Gobierno para hacer referencia a órganos del Estado con carácter político.
Delegación en informática
Se conoce con el nombre de delegación a un mecanismo de la programación orientada a objetos que consiste en la encomienda de una determinada funcionalidad de una clase hacia otra. Se diferencia de la herencia por su reutilización selectiva.
Veamos un ejemplo práctico: una clase A posee un método para calcular el área de cualquier figura geométrica dada; sin embargo, no cuenta con las herramientas para realizar los cálculos por sí misma sino que, una vez analizada la figura, delega la acción en la clase adecuada a través de un llamado al método pertinente, para finalmente devolver el resultado.
A pesar de tratarse de una práctica ampliamente conocida, son pocos los lenguajes de programación que implementan la delegación como un modelo alternativo a la herencia estática. Entre los lenguajes que sí ofrecen esta posibilidad se encuentra Self, nacido a finales de la década de los 80.
El concepto de delegado multidifusión (del inglés multicast delegate) hace referencia a un delegado que apunta a varios métodos. Es un mecanismo que ofrece la posibilidad de ejecutar más de un método, similar al caso del cálculo de superficie expuesto anteriormente.
Ventajas del método
El uso de delegaciones es una práctica aconsejable como alternativa a la herencia siempre que no se necesite de conversiones hacia arriba (convertir un objeto a un tipo de menor jerarquía; por ejemplo: un objeto de clase Figura a clase Cuadrado). Los expertos suelen recomendarla por sobre la herencia en la mayoría de los casos, a menos que resulte demasiado complicada.
Cuando se trabaja con un lenguaje incompatible con la delegación de forma directa, es posible emularla a través de una composición de clases (alojar en una clase un objeto de una diferente y hacerlo privado, de modo que el usuario no pueda ver su interfaz original sino la de la clase que lo contiene) para delegar ciertas tareas en los objetos que sean capaces de resolverlas.
Cabe mencionar que la utilización de un método de un delegado no siempre se hace a través de uno con el mismo número y tipo de parámetros; por ejemplo: en una clase M hay un método CalcularArea que recibe una serie de parámetros, entre los que se encuentra tipoDeFigura; si se lo desea utilizar desde una clase C, que solamente opera con cuadrados, entonces dicha clase podrá contar con un método de nombre similar al original, pero que no espere la especificación del tipo de figura, y que pase al método de la clase M siempre el mismo valor para dicho parámetro (o sea, «cuadrado»).