Programmēšana

Delegāti

2001. gada 14. septembris

J: Kas ir delegāti?

A: Kad objekts saņem pieprasījumu, objekts var pats apstrādāt pieprasījumu vai nodot pieprasījumu otram objektam, lai veiktu darbu. Ja objekts nolemj nodot pieprasījumu tālāk, jūs sakāt, ka objektam ir pārsūtīts atbildība par otrā objekta pieprasījuma apstrādi.

Sekojošais Kaudze klase sniedz vienkāršu kompozīcijas un pārsūtīšanas piemēru:

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 (Object item) {list.add (0, item); atgriezt preci; }} 

Izmantojot kompozīciju, Kaudze turas pie ArrayList instancē. Kā jūs redzat, Kaudze tad pārsūta pieprasījumus ArrayList instancē. Vienkāršs sastāvs un pieprasījumu pārsūtīšana (piemēram, Kaudze klasi, kas iepriekš parādīta) bieži kļūdaini sauc par delegācija.

Patiesa deleģēšana ir mazliet stingrāka. Patiesā deleģēšanā objekts, kas pārsūta pieprasījumu, arī sevi nodod kā argumentu deleģētajam objektam, kurš faktiski veic darbu.

Padomājiet par patiesu deleģēšanu šādā veidā: kaut kas nosūta pieprasījumu objekts1. objekts1 tad pārsūta pieprasījumu un pats uz objekts2 - delegāts. objekts2 apstrādā pieprasījumu un veic kādu darbu.

Lielisku patiesas deleģēšanas piemēru, lūdzu, skatiet štata parauga kodā Atkārtoti lietojamas uz objektu orientētas programmatūras dizainparaugu elementi Erich Gamma un citi (sk. resursus). Varat arī apskatīt Ērika Ārmstronga (Kā īstenot no valsts atkarīgu uzvedību) (JavaWorld, 1997. gada augusts).

Tonijs Sintess ir neatkarīgs konsultants un First Class Consulting, Inc., konsultāciju firmas dibinātājs, kas specializējas atšķirīgu uzņēmuma sistēmu un apmācības apvienošanā. Ārpus pirmās klases konsultācijām Tonijs ir aktīvs ārštata rakstnieks, kā arī grāmatas Sams autors uz objektu orientētu programmēšanu 21 dienas laikā autors.

Uzziniet vairāk par šo tēmu

  • Slavenā četru bandu grāmataDizaina modeļi, Ēriks Gamma, Ričards Helms, Ralfs Džonsons, Džons Vlisīdss (Addison-Wesley Publishing Co, 1995; ISBN0201633612)

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

  • "Kā īstenot no valsts atkarīgu uzvedību", Ēriks Ārmstrongs (JavaWorld, 1997. gada augusts)

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

  • Vēlas vairāk? Skatīt Java jautājumi un atbildes Pilna jautājumu un atbilžu kataloga indekss

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

  • Lai iegūtu vairāk nekā 100 ieskatīgus Java padomus no labākajiem biznesa prātiem, apmeklējiet vietni JavaWorld 's Java padomi Indekss

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

  • Pierakstieties JavaWorldbezmaksas iknedēļas e-pasta biļeteni

    //www.idg.net/jw-subscribe

  • Jūs atradīsit daudz ar IT saistītu rakstu no mūsu māsas publikācijām vietnē .net

Šo stāstu "Delegāti" sākotnēji publicēja JavaWorld.

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