Programovanie

Delegáti

14. septembra 2001

Otázka: Čo sú delegáti?

A: Keď objekt prijme požiadavku, môže ju buď spracovať sám, alebo ju odovzdať druhému objektu, aby vykonal prácu. Ak sa objekt rozhodne postúpiť žiadosť ďalej, hovoríte, že objekt má preposlaný zodpovednosť za vybavenie žiadosti o druhý objekt.

Nasledujúci Stoh triedy poskytuje jednoduchý príklad zloženia a preposielania:

public class Stack {private java.util.ArrayList list; public Stack () {list = new java.util.ArrayList (); } public boolean empty () {return list.isEmpty (); } public Object peek () {if (! empty ()) {návrat list.get (0); } return null; } public Object pop () {if (! empty ()) {return list.remove (0); } return null; } public push objektu (položka objektu) {list.add (0, položka); vrátiť položku; }} 

Prostredníctvom zloženia, Stoh drží sa ArrayList inštancia. Ako môžeš vidieť, Stoh potom prepošle žiadosti ArrayList inštancia. Jednoduché zloženie a preposlanie žiadosti (napríklad formulára Stoh trieda uvedená vyššie) sa často mylne označuje ako delegovanie.

Skutočné delegovanie je o niečo prísnejšie. Pri skutočnom delegovaní odovzdá objekt, ktorý požiadavku postúpi ďalej, ako argument delegovanému objektu, ktorý skutočne vykoná prácu.

Premýšľajte o skutočnom delegovaní takto: Niečo pošle žiadosť používateľovi objekt1. objekt1 potom prepošle žiadosť a sama sebe objekt2 - delegát. objekt2 spracuje požiadavku a urobí nejakú prácu.

Vynikajúci príklad skutočného delegovania nájdete v príklade kódu pre stavový vzor v Prvky návrhových vzorov opakovane použiteľného objektovo orientovaného softvéru autor: Erich Gamma a kol. (pozri Zdroje). Môžete si tiež prečítať „Ako implementovať správanie závislé od štátu“ od Erica Armstronga (JavaWorld, August 1997).

Tony Sintes je nezávislý konzultant a zakladateľ konzultačnej spoločnosti First Class Consulting, Inc., ktorá sa špecializuje na premosťovanie rozdielnych podnikových systémov a školení. Okrem First Class Consulting je Tony aktívnym spisovateľom na voľnej nohe a tiež autorom Sams Teach Yourself Object-Oriented Programming za 21 dní.

Získajte viac informácií o tejto téme

  • Slávna kniha Gang štyroch ľudíDizajnové vzory, Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

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

  • „Ako implementovať správanie závislé od štátu,“ Eric Armstrong (JavaWorld, August 1997)

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

  • Chcieť viac? Viď Java Q&A Register pre celý katalóg otázok a odpovedí

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

  • Viac ako 100 bystrých tipov pre jazyk Java od najlepších odborníkov v odbore nájdete na stránke JavaWorld 's Tipy pre Java Register

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

  • Zaregistrovať JavaWorldbezplatné týždenné e-mailové bulletiny

    //www.idg.net/jw-subscribe

  • Množstvo článkov týkajúcich sa IT z našich sesterských publikácií nájdete na .net

Tento príbeh, „Delegáti“, bol pôvodne publikovaný spoločnosťou JavaWorld.

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