Délégués

14 septembre 2001

Q: Que sont les délégués?

R: Lorsqu'un objet reçoit une demande, l'objet peut soit gérer la demande lui-même, soit transmettre la demande à un deuxième objet pour effectuer le travail. Si l'objet décide de transmettre la demande, vous dites que l'objet a transféré la responsabilité du traitement de la demande au deuxième objet.

La Stackclasse suivante fournit un exemple simple de composition et de transfert:

public class Stack {liste privée java.util.ArrayList; public Stack () {list = new java.util.ArrayList (); } public boolean empty () {return list.isEmpty (); } public Object peek () {if (! empty ()) {return list.get (0); } return null; } Public Object pop () {if (! empty ()) {return list.remove (0); } return null; } public Object push (élément d'objet) {list.add (0, élément); retourner l'objet; }}

Par la composition, Stacktient une ArrayListinstance. Comme vous pouvez le voir, Stacktransfère ensuite les demandes à l' ArrayListinstance. La simple composition et la transmission des demandes (comme celle de la Stackclasse présentée ci-dessus) sont souvent appelées à tort délégation.

La vraie délégation est un peu plus rigoureuse. Dans la vraie délégation, l'objet qui transmet la demande se passe également en tant qu'argument à l'objet délégué, qui effectue réellement le travail.

Pensez à la vraie délégation de cette façon: quelque chose envoie une demande à object1. object1puis transmet la demande et elle-même au object2délégué. object2traite la demande et effectue un certain travail.

Pour un excellent exemple de vraie délégation, veuillez consulter l'exemple de code pour le modèle d'état dans les éléments de modèles de conception du logiciel orienté objet réutilisable par Erich Gamma et al (voir Ressources). Vous pouvez également consulter «Comment mettre en œuvre un comportement dépendant de l'état» par Eric Armstrong ( JavaWorld , août 1997).

Tony Sintes est un consultant indépendant et fondateur de First Class Consulting, Inc., une société de conseil spécialisée dans la mise en relation de systèmes d'entreprise disparates et la formation. En dehors de First Class Consulting, Tony est un écrivain indépendant actif, ainsi que l'auteur de Sams Teach Yourself Object-Oriented Programming in 21 Days.

En savoir plus sur ce sujet

  • Les célèbres modèles de conception du livre Gang of Four , Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

    //www.amazon.com/exec/obidos/ASIN/0201633612/javaworld

  • «Comment mettre en œuvre un comportement dépendant de l'État», Eric Armstrong ( JavaWorld , août 1997)

    //www.javaworld.com/javaworld/jw-08-1997/jw-08-stated.html

  • Vouloir plus? Consultez l' index des questions-réponses Java pour le catalogue complet

    //www.javaworld.com/columns/jw-qna-index.shtml

  • Pour plus de 100 conseils Java perspicaces de certains des meilleurs esprits dans l'entreprise, visitez le « JavaWorld de Java Conseils Index

    //www.javaworld.com/columns/jw-tips-index.shtml

  • Inscrivez-vous aux newsletters hebdomadaires gratuites de JavaWorld

    //www.idg.net/jw-subscribe

  • Vous trouverez une multitude d'articles liés à l'informatique provenant de nos publications sœurs sur .net

Cette histoire, "Delegates" a été initialement publiée par JavaWorld.