Nous allons définir une méthode de translation pour ces objets. Pour translater un cercle, il suffit de translater son centre ; pour translater un rectangle, il suffit de translater ses sommets. On dit que l'on délègue une méthode à d'autres objets, ici ses composants.
package geometrie;
class Cercle {
  // ...
  void translater(double dx, double dy) {
    centre.translater(dx, dy);
  }
}
class Rectangle {
  // ...
  void translater(double dx, double dy) {
    sg.translater(dx, dy);
    id.translater(dx, dy);
  }
}
Ces deux techniques, de composition et de délégation, sont très utilisées. Par exemple, on définit une « interface graphique » à partir de plusieurs « composants graphiques » (des boutons, barres de menus, menus, etc.) et on délégue à des « observateurs » le soin de traiter certains événements (presser un bouton, choisir un item dans un menu, etc.).