Programiranje

Delegati

14. septembra 2001

V: Kaj so delegati?

A: Ko objekt prejme zahtevo, lahko sam obdela zahtevo ali pa jo posreduje drugemu objektu, da opravi delo. Če se objekt odloči, da bo zahtevo posredoval naprej, pravite, da je predmet sprejel posredovano odgovornost za obdelavo zahteve do drugega predmeta.

Naslednji Stack razred ponuja preprost primer sestave in posredovanja:

javni razred Stack {private java.util.ArrayList list; javni sklad () {list = new java.util.ArrayList (); } javno logično prazno () {return list.isEmpty (); } public Object peek () {if (! empty ()) {return list.get (0); } vrni null; } public Object pop () {if (! empty ()) {return list.remove (0); } vrni null; } javni potisk predmeta (predmet predmeta) {list.add (0, element); vrni artikel; }} 

Skozi sestavo, Stack drži na ArrayList primer. Kot lahko vidite, Stack nato zahteve posreduje ArrayList primer. Preprosta sestava in posredovanje zahtev (kot je na primer Stack razred, predstavljen zgoraj) se pogosto zmotno imenuje delegacija.

Resnično pooblastilo je nekoliko bolj strogo. Pri resničnem delegiranju se objekt, ki posreduje zahtevo, tudi prenese kot argument na delegirani objekt, ki dejansko opravi delo.

O resničnem prenosu pomislite tako: Nekaj ​​pošlje zahtevo objekt1. objekt1 nato prošnjo in sebe posreduje na objekt2 - delegat. objekt2 obdela zahtevo in opravi nekaj dela.

Za odličen primer resničnega prenosa glejte primer kode za državni vzorec v Elementi vzorcev oblikovanja predmetno usmerjene programske opreme za večkratno uporabo avtor Erich Gamma in drugi (glej Viri). Ogledate si lahko tudi "Kako izvesti vedenje, ki je odvisno od države", Eric Armstrong (JavaWorld, Avgust 1997).

Tony Sintes je neodvisni svetovalec in ustanovitelj First Class Consulting, Inc., svetovalnega podjetja, ki je specializirano za premostitev različnih podjetniških sistemov in usposabljanja. Zunaj prvovrstnega svetovanja je Tony aktivni samostojni pisec in avtor knjige Sams Teach Yourself Objekt-Oriented Programming v 21 dneh.

Preberite več o tej temi

  • Slavna knjiga Gang of FourVzorci oblikovanja, Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

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

  • "Kako izvajati vedenje, ki je odvisno od države," Eric Armstrong (JavaWorld, Avgust 1997)

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

  • Želijo več? Glej Vprašanja in odgovori o Javi Kazalo za celoten katalog Vprašanj

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

  • Obiščite več kot 100 vpoglednih nasvetov Java nekaterih najboljših mož v poslu JavaWorld 's Java Nasveti Kazalo

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

  • Prijavite se za JavaWorldbrezplačna tedenska glasila po e-pošti

    //www.idg.net/jw-subscribe

  • Na naslovu .net boste našli ogromno člankov, povezanih z IT, iz naših sestrskih publikacij

To zgodbo "Delegati" je prvotno objavil JavaWorld.

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