Programmering

Delegater

14. september 2001

Spørgsmål: Hvad er delegerede?

EN: Når et objekt modtager en anmodning, kan objektet enten håndtere selve anmodningen eller videresende anmodningen til et andet objekt for at udføre arbejdet. Hvis objektet beslutter at videresende anmodningen, siger du, at objektet har det videresendt ansvar for håndtering af anmodningen til det andet objekt.

Det følgende Stak klasse giver et simpelt eksempel på sammensætning og videresendelse:

offentlig klasse Stak {privat java.util.ArrayList liste; offentlig stak () {liste = ny java.util.ArrayList (); } offentlig boolsk tom () {returliste.isEmpty (); } offentlig Objektkig () {if (! tom ()) {return list.get (0); } returnere null; } public Object pop () {if (! empty ()) {return list.remove (0); } returnere null; } public Object push (Object item) {list.add (0, item); returvare; }} 

Gennem komposition, Stak holder fast i en ArrayList eksempel. Som du kan se, Stak videresender derefter anmodningerne til ArrayList eksempel. Enkel sammensætning og videresendelse af anmodninger (som f.eks Stak klasse præsenteret ovenfor) kaldes ofte fejlagtigt som delegation.

Ægte delegation er lidt strengere. I ægte delegering videregiver det objekt, der videresender anmodningen, sig selv som et argument til det delegerede objekt, som faktisk udfører arbejdet.

Tænk på ægte delegation på denne måde: Noget sender en anmodning til objekt1. objekt1 videresender derefter anmodningen og sig selv til objekt2 - delegaten. objekt2 behandler anmodningen og gør noget arbejde.

For et glimrende eksempel på ægte delegation, se eksemplets kode for statens mønster i Designmønstre Elementer af genanvendelig objektorienteret software af Erich Gamma et al. (se Ressourcer). Du kan også tjekke "Sådan implementeres statsafhængig adfærd" af Eric Armstrong (JavaWorld, August 1997).

Tony Sintes er en uafhængig konsulent og grundlægger af First Class Consulting, Inc., et konsulentfirma, der har specialiseret sig i at bygge bro mellem forskellige virksomhedssystemer og træning. Uden for førsteklasses rådgivning er Tony en aktiv freelance skribent samt forfatter af Sams Teach Yourself Object-Oriented Programming in 21 Days.

Lær mere om dette emne

  • Den berømte bande af fire bøgerDesignmønstre, Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

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

  • "Sådan implementeres statsafhængig adfærd," Eric Armstrong (JavaWorldAugust 1997)

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

  • Ønsker mere? Se Java Q&A Indeks for det fulde Q&A katalog

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

  • For mere end 100 indsigtsfulde Java-tip fra nogle af de bedste sind i branchen, besøg JavaWorld 's Java-tip Indeks

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

  • Tilmeld dig JavaWorld's gratis ugentlige nyhedsbreve via e - mail

    //www.idg.net/jw- abonnement

  • Du finder et væld af it-relaterede artikler fra vores søsterpublikationer på .net

Denne historie, "delegerede" blev oprindeligt udgivet af JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found