Patrón "delegado"


Descripción

La herencia es útil para modelar relaciones de tipo es-un o es-una, ya que estos tipos de relaciones son de naturaleza estática. Sin embargo, relaciones de tipo es-un-rol-ejecutado-por son mal modeladas con herencia.

Un objeto receptor delega operaciones en su delegado. Presente en muchos patrones: State, Strategy, Visitor,..

Un ejemplo: supongamos que un objeto debe ordenar una estructura de datos. Puede delegar en otro objeto el método de comparación. En Java tenemos un caso: la clase Collections tiene el método estático sort(); desde este método se delega en un comparador para establecer el orden:



import java.util.Comparator;



public class comparador implements Comparator {



   public int compare( Object o1, Object o2 ) {

      if ( ((ente)o1).obt_id() < ((ente)o2).obt_id() )

         return –1;

      if ( ((ente)o1).obt_id() > ((ente)o2).obt_id() )

         return 1;

      return 0;

   }

}



Volver al índice