48.    Delegación [delegation] (concepto)

Cuando un método de una clase B recurre a métodos de otra clase A para lograr sus objetivos, se dice que B delega en A.

double distancia(Punto p, Punto q)

double distancia(Punto p, Punto q) {

  double dx = p.getX() - q.getX();

  double dy = p.getY() - q.getY();

  return Math.sqrt(dx*dx + dy*dy);

}                  

 

“distancia” delega en el método “sqrt” de la clase “Math” para calcular la raíz cuadrada y en los métodos getX() y getY() de la clase Punto para acceder a las coordenadas.

La delegación es interesante en cuanto permite construir programas cada vez más complejos aprovechando métodos ya disponibles.

Lo contrario de la delegación es la “reinvención de la rueda”.

Ver "Composición".

Temas relacionados

Vademécum