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 StackKlasse 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 Stackan einer ArrayListInstanz fest. Wie Sie sehen können, werden Stackdie Anforderungen dann an die ArrayListInstanz weitergeleitet. Eine einfache Zusammenstellung und Weiterleitung von Anfragen (wie die der Stackoben 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. object1leitet dann die Anfrage und sich selbst an object2den Delegierten weiter. object2verarbeitet 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.