Subscribe Twitter Twitter

jueves, 22 de abril de 2010

El patrón de diseño DELEGATE

En programación para el iphone el concepto de delegado es muy habitual encontrarse con él, por ello vamos a dedicar este post a explicar como funciona para evitar que sea un problema cuando nos metamos en profundidad con el sdk.

En realidad tenemos un conjunto de funciones sin implementar que pueden ser "adquiridas" por cualquier objeto y que será éste el que escriba el código particular para esas funciones.

Por ejemplo imaginate que tienes en una aplicación un "picker" (que es un combo muy típico en cualquier aplicación del iphone) por ejemplo cuando pones la alarma del móvil en el cual seleccionas tanto la hora como los minutos pero el mio en vez de ser con número es con días de la semana, en ambos casos el nombre de los métodos que manipularan ese picker tendrán la misma firma ("signature") en otras la cabecera de la función será identica en todos los casos pero cambiará la implementación de cada una de ellas.

Como puedes ver aunque usamos la misma plantilla lo que cambia es la implementación, esto es el patrón delegado, por ejemplo en java ésto se implementa mediante le uso de las denominadas interfaces.



interface Persona {
void andar();
}

class Deportista implements Persona {

void andar(){

System.out.println("Estamos en el método andar de la clase Deportista");
}
}

class Jubilado implements Persona {
void andar() {
}
}


Como habrás visto en el ejemplo anterior tenemos un interfaz que funciona como plantilla denominado Persona y después hay dos clases que lo usan y para ello se usa la directiva en java implements (dedicaremos un post a la aplicación del patrón delegate en objetive-c) y en el primer caso al método andar se le provee de implementación y en el segundo caso no, ésto es para que veas que aunque tienes que poner el método no es obligatorio que tenga en su interior implementación pero si no lo pones daría un error.

0 comentarios:

Publicar un comentario