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.).