C Sharp (C#) – Usar Delegados – Parte 3

¿Cuándo se ocupan los delegados?

Los delegados pueden ser utilizados en distintas ocasiones, también pueden no ser utilizados como en el caso del lenguaje Java. Pero la idea de aprender a usar los delegados es para ser mas eficiente a la hora de programar y ahorrar lineas de código. Al principio usar palabras claves nuevas en un lenguaje de programación moderno puede ser difícil pero cuando ya lo aprendes será mas intuitivo y más eficiente.

Los delegados se pueden usar cuando:

  • Se llama a varios métodos con una sola llamada (Multidifución). A los objetos delegados se les puede asignar métodos y luego llamarlos todos de forma ordenada, con una sola llamada desde el objeto delegado.
  • Se pasan métodos como parámetros. Gracias a usar un tipo delegado como parámetro.
  • La ordenación de un conjunto de elementos. Por ejemplo, ordenar una secuencia de métodos.
  • Se utilice un modelo de diseño de eventos. Los eventos son como las propiedades, son una forma de acceder a los delegados. Dan una respuesta cuando se le asigna y/o quita un método a un evento que representa un objeto delegado (parecido a las propiedades representan a las variables).
  • Se prefiere a la hora de encapsular un método estático. Con llamar a un objeto delegado se puede acceder para llamar a métodos estáticos privados de otra clase (no la clase en la cual esta el autor de la llamada al objeto delegado), sin tener que llamarlos directamente (ya que no se puede llamar a miembros (métodos, variables, propiedades, etc)  privados de forma directa desde otra clase).
  • El autor de la llamada no tiene ninguna necesidad de obtener acceso a otras propiedades, métodos o interfaces de el objeto.
  • Una clase puede necesitar mas de una implementación (realización de una especificación técnica) de métodos.
  • Se desea conseguir una composición sencilla.
  • Para realizar devolución de llamadas asíncronas (en un hilo de ejecución a parte) y finalizar llamadas asíncronas.
  • Cambios en bases de datos. Por ejemplo, a partir de un cambio de ‘x’ tabla se genera una respuesta ‘y’.
  • Asociación de código a la carga y descarga de ensamblados.
  • Cambios en el sistema de archivos. Por ejemplo al borrar ‘x’ archivo se escribe un registro en otro archivo ‘y’, que contiene datos del archivo borrado.
  • Etc.

Si no quedaron muy claras algunas cosas, más adelante se verán. También veremos algunos ejemplos ilustrativos (para aprender a usar los delegados) y ejemplos en un contexto ‘más o menos real’ (ya que son solo ejemplos).

¿Dudas?, ¿sugerencias?, ¿opiniones?, ¿errores?, ¿insultos?

.

Este artículo es una parte más de una serie de artículos que trata de explicar el como usar delegados. Hasta el momento estos son los artículos ->

  1. C Sharp (C#) – Usar delegados – Ejemplo mínimo sobre delegados
  2. C Sharp (C#) – Usar delegados – Añadir y quitar métodos a un objeto delegado
  3. C Sharp (C#) – Usar delegados – ¿Cuándo se ocupan los delegados?
  4. C Sharp (C#) – Usar delegados – Acceso a miembros de delegados, añadir y quitar métodos y un ejercicio para entender los delegados en C Sharp

.

(parte 2: Añadir y quitar métodos a un objeto delegado) Artículo anterior | Artículo siguiente (parte 4: Acceso a miembros de delegados, añadir y quitar métodos y un ejercicio para entender los delegados en C Sharp)

2 thoughts on “C Sharp (C#) – Usar Delegados – Parte 3

  1. Man, estuve leyendo tu blog, es excelente y tenés opiniones interesantes respecto a .Net (yo también trabajo con .Net). Me gustó mucho, lo voy a tener como referencia cuando postee algo en el mío.

    Un abrazo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s