Programování

Delegáti

14. září 2001

Otázka: Co jsou delegáti?

A: Když objekt obdrží požadavek, může objekt buď zpracovat požadavek sám, nebo předat požadavek druhému objektu, aby provedl práci. Pokud se objekt rozhodne předat požadavek, říkáte, že objekt má předáno odpovědnost za vyřízení požadavku na druhý objekt.

Následující Zásobník třída poskytuje jednoduchý příklad složení a přeposílání:

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 ()) {návrat list.remove (0); } return null; } push veřejného objektu (položka objektu) {list.add (0, položka); vrátit položku; }} 

Prostřednictvím složení Zásobník drží se ArrayList instance. Jak můžete vidět, Zásobník poté předá žádosti ArrayList instance. Jednoduché složení a přesměrování žádostí (například složka Zásobník třída uvedená výše) se často mylně označuje jako delegace.

Skutečné delegování je o něco přísnější. Ve skutečném delegování objekt, který předává požadavek, se také předává jako argument delegovanému objektu, který ve skutečnosti dělá práci.

Přemýšlejte o skutečném delegování tímto způsobem: Něco pošle požadavek objekt1. objekt1 pak předá požadavek a sám sobě objekt2 - delegát. objekt2 zpracuje požadavek a provede nějakou práci.

Vynikající příklad skutečného delegování najdete v ukázkovém kódu pro stavový vzor v Prvky návrhových vzorů opakovaně použitelného objektově orientovaného softwaru Erich Gamma a kol. (viz Zdroje). Můžete se také podívat na „Jak implementovat chování závislé na státu“ od Erica Armstronga (JavaWorld, Srpen 1997).

Tony Sintes je nezávislý konzultant a zakladatel poradenské firmy First Class Consulting, Inc., která se specializuje na přemostění různorodých podnikových systémů a školení. Mimo First Class Consulting je Tony aktivním spisovatelem na volné noze a autorem Sams Teach Yourself Object-Oriented Programming in 21 Days.

Další informace o tomto tématu

  • Slavná kniha Gang čtyřDesignové vzory, Eric Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)

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

  • „Jak implementovat chování závislé na státu,“ Eric Armstrong (JavaWorld, Srpen 1997)

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

  • Chcete více? Viz Java Q&A Rejstřík pro celý katalog otázek a odpovědí

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

  • Pro více než 100 bystrých tipů pro Javu od nejlepších odborníků v oboru navštivte JavaWorld 's Tipy pro Java Index

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

  • Přihlásit se JavaWorldbezplatné týdenní e-mailové zpravodaje

    //www.idg.net/jw-subscribe

  • Spoustu článků o IT z našich sesterských publikací najdete na .net

Tento příběh „Delegáti“ původně publikoval JavaWorld.

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