Delegierte
14. September 2001
F: Was sind Delegierte?
A: Wenn ein Objekt eine Anfrage empfängt, kann das Objekt entweder die Anfrage selbst bearbeiten oder die Anfrage an ein zweites Objekt weiterleiten, um die Arbeit zu erledigen. Wenn das Objekt auf die Anforderung passieren entscheidet, sagen Sie , dass das Objekt weitergeleitet Verantwortung für den Umgang mit der Anforderung an das zweite Objekt.
Die folgende Stack
Klasse bietet ein einfaches Beispiel für Komposition und Weiterleitung:
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 ()) {return list.get (0); } return null; } public Object pop () {if (! empty ()) {return list.remove (0); } return null; } public Object push (Objektelement) {list.add (0, Element); Artikel zurückgeben; }}
Hält durch Komposition Stack
an einer ArrayList
Instanz fest. Wie Sie sehen können, werden Stack
die Anforderungen dann an die ArrayList
Instanz weitergeleitet. Eine einfache Zusammenstellung und Weiterleitung von Anfragen (wie die der Stack
oben dargestellten Klasse) wird häufig fälschlicherweise als Delegation bezeichnet.
Wahre Delegation ist etwas strenger. Bei der echten Delegierung übergibt sich das Objekt, das die Anforderung weiterleitet, auch selbst als Argument an das delegierte Objekt, das die Arbeit tatsächlich erledigt.
Stellen Sie sich echte Delegation folgendermaßen vor: Etwas sendet eine Anfrage an object1
. object1
leitet dann die Anfrage und sich selbst an object2
den Delegierten weiter. object2
verarbeitet die Anfrage und erledigt einige Arbeiten.
Ein hervorragendes Beispiel für eine echte Delegierung finden Sie im Beispielcode für das Statusmuster in Entwurfsmusterelemente wiederverwendbarer objektorientierter Software von Erich Gamma et al. (Siehe Ressourcen). Sie können auch "Wie man ein zustandsabhängiges Verhalten implementiert" von Eric Armstrong ( JavaWorld , August 1997) lesen .
Tony Sintes ist ein unabhängiger Berater und Gründer von First Class Consulting, Inc., einem Beratungsunternehmen, das sich auf die Überbrückung unterschiedlicher Unternehmenssysteme und Schulungen spezialisiert hat. Außerhalb von First Class Consulting ist Tony ein aktiver freiberuflicher Autor und Autor von Sams Teach Yourself Object-Oriented Programming in 21 Tagen.Erfahren Sie mehr über dieses Thema
- Der berühmte Gang of Four Buch Design Patterns , Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Addison-Wesley Publishing Co., 1995; ISBN0201633612)
//www.amazon.com/exec/obidos/ASIN/0201633612/javaworld
- "Wie man ein staatlich abhängiges Verhalten implementiert", Eric Armstrong ( JavaWorld , August 1997)
//www.javaworld.com/javaworld/jw-08-1997/jw-08-stated.html
- Mehr wollen? Den vollständigen Q & A-Katalog finden Sie im Java Q & A- Index
//www.javaworld.com/columns/jw-qna-index.shtml
- Seit mehr als 100 interessante Java - Tipps von einigen der besten Köpfe im Geschäft, besuchen Javaworld‘ s Java Tipps Index
//www.javaworld.com/columns/jw-tips-index.shtml
- Melden Sie sich für den kostenlosen wöchentlichen E-Mail-Newsletter von JavaWorld an
//www.idg.net/jw-subscribe
- Unter .net finden Sie eine Fülle von IT-Artikeln aus unseren Schwesterpublikationen
Diese Geschichte "Delegates" wurde ursprünglich von JavaWorld veröffentlicht.