Ohjelmointi

Edustajat

14. syyskuuta 2001

K: Mitä edustajat ovat?

A: Kun objekti vastaanottaa pyynnön, objekti voi joko käsitellä pyynnön itse tai välittää pyynnön toiselle objektille työn suorittamiseksi. Jos objekti päättää välittää pyynnön, sanot objektilla olevan toimitetaan edelleen vastuu toisen objektin pyynnön käsittelystä.

Seuraavat Pino luokka tarjoaa yksinkertaisen esimerkin sommittelusta ja välittämisestä:

julkisen luokan pino {yksityinen java.util.ArrayList-luettelo; 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 (Object item) {list.add (0, item); palauttaa tuote; }} 

Sävellyksen kautta Pino pitää kiinni ArrayList ilmentymä. Kuten näet, Pino välittää sitten pyynnöt ArrayList ilmentymä. Yksinkertainen kokoonpano ja pyyntöjen edelleenlähetys (kuten Pino luokka), johon viitataan usein virheellisesti valtuuskunta.

Todellinen valtuuskunta on hieman tiukempi. Todellisessa delegoinnissa myös pyynnön välittävä objekti välittää itsensä argumenttina delegoitavalle objektille, joka tosiasiallisesti tekee työn.

Ajattele todellista valtuuskuntaa tällä tavalla: Jokin lähettää pyynnön esine 1. esine 1 välittää sitten pyynnön ja itsensä edelleen esine 2 - edustaja. esine 2 käsittelee pyynnön ja tekee jonkin verran työtä.

Erinomainen esimerkki todellisesta delegoinnista on valtion mallin esimerkkikoodissa Uudelleenkäytettävien olio-ohjelmistojen suunnittelumallit Erich Gamma et ai. (katso Resurssit). Voit myös tutustua Eric Armstrongin "Kuinka toteuttaa valtiosta riippuvainen käyttäytyminen" (JavaWorld, Elokuu 1997).

Tony Sintes on riippumaton konsultti ja perustaja First Class Consulting, Inc. -yritykselle, joka on erikoistunut erilaisten yritysjärjestelmien ja koulutuksen yhdistämiseen. Ensiluokkaisen konsultoinnin ulkopuolella Tony on aktiivinen freelance-kirjailija, samoin kuin kirjan Sams Teach Yourself Object Oriented Programming in 21 Days.

Lisätietoja tästä aiheesta

  • Kuuluisa Neljän jengin kirjaSuunnittelumalleja, Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

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

  • "Kuinka toteuttaa valtiosta riippuvainen käyttäytyminen", Eric Armstrong (JavaWorld, Elokuu 1997)

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

  • Haluta lisää? Katso Java-kysymykset ja vastaukset Hakemisto koko Q & A-luetteloon

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

  • Jos haluat saada yli 100 oivaltavaa Java-vinkkiä yrityksen parhailta mieliltä, ​​käy osoitteessa JavaWorld 's Java-vinkkejä Indeksi

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

  • Ilmottautua JavaWorldilmaiset viikoittaiset sähköpostiuutiskirjeet

    //www.idg.net/jw-subscribe

  • Löydät runsaasti tietotekniikkaan liittyviä artikkeleita sisarjulkaisuistamme .net

Tämän tarinan "Delegaatit" julkaisi alun perin JavaWorld.