Delegati

14. rujna 2001

P: Što su delegati?

O: Kad objekt primi zahtjev, objekt može ili sam obrađivati ​​zahtjev ili ga proslijediti drugom objektu da obavi posao. Ako objekt odluči proslijediti zahtjev, kažete da je objekt proslijedio odgovornost za rukovanje zahtjevom na drugi objekt.

Sljedeća Stackklasa pruža jednostavan primjer sastavljanja i prosljeđivanja:

javna klasa Stack {private java.util.ArrayList list; javni Stack () {list = new java.util.ArrayList (); } javno logičko prazno () {return list.isEmpty (); } public Object peek () {if (! empty ()) {return list.get (0); } return null; } javni Object pop () {if (! empty ()) {return list.remove (0); } return null; } javni potisak objekta (objektna stavka) {list.add (0, stavka); predmet povrata; }}

Kroz kompoziciju se Stackdrži na ArrayListprimjeru. Kao što vidite, Stackzahtjeve prosljeđuje ArrayListinstanci. Jednostavna kompozicija i prosljeđivanje zahtjeva (poput one Stackgore predstavljene klase) često se pogrešno naziva delegiranjem.

Istinsko delegiranje je malo rigoroznije. U pravom delegiranju, objekt koji prosljeđuje zahtjev također se prosljeđuje kao argument objektu delegata, koji zapravo obavlja posao.

Zamislite istinsko delegiranje na ovaj način: nešto šalje zahtjev object1. object1zatim prosljeđuje zahtjev i sebe object2- delegatu. object2obrađuje zahtjev i obavlja neke poslove.

Za izvrstan primjer istinskog delegiranja, pogledajte primjer koda za državni obrazac u elementima dizajna uzoraka višekratno korištenog objektno orijentiranog softvera, autora Erich Gamma i suradnici (vidi Resursi). Također možete pogledati "Kako implementirati ponašanje ovisno o državi", Eric Armstrong ( JavaWorld , kolovoz 1997.).

Tony Sintes neovisni je savjetnik i osnivač First Class Consulting, Inc., konzultantske tvrtke specijalizirane za premošćivanje različitih poslovnih sustava i obuke. Izvan prvoklasnog savjetovanja, Tony je aktivni slobodni pisac, kao i autor knjige Sams Teach Yourself Objekt-Oriented Programming za 21 dan.

Saznajte više o ovoj temi

  • Poznati Gang of Four knjiga dizajn obrazaca , Eric gama, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995., ISBN0201633612)

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

  • "Kako implementirati ponašanje ovisno o državi", Eric Armstrong ( JavaWorld , kolovoz 1997.)

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

  • Želite više? Potpuni katalog Q&A potražite u Javinom indeksu pitanja i odgovora

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

  • Za više od 100 uvida Java savjete iz neke od najboljih umova u poslovanju, posjetite JavaWorld” s Java Savjet Indeks

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

  • Prijavite se za besplatne tjedne biltene e-pošte JavaWorld

    //www.idg.net/jw-subscribe

  • Mnoštvo članaka vezanih uz IT iz naših sestrinskih publikacija pronaći ćete na .net

Ovu je priču "Delegati" izvorno objavio JavaWorld.