..


Спонсоред Линкс

АОП - Пуномоћници

Пре него што да виде како да направите са њиховим аспектом поинтцутс и савет, веома је важно да разумете како пуномоћника.
Проки није ништа више него омотач (контејнер) који садржи објекат и излаже све јавне медоди објекта. Када позовете метод на замена стварне примене метода је делегирано објекат преломи, чиме присуству пуномоћника потпуно транспарентан за корисника.
Проки користи пролеће АОП да спроведе од простог делегат методе такође баве разним управљање савет.

Ми разумемо како прокси спроводи један веома једноставан. Прво ми стварамо једноставан интерфејс:






 {Јавни интерфејс СимплеИнтерфаце



	

  



 публиц воид Ф1 ();



	

  



 публиц воид ф2 ();







 }



ми стварамо и једноставна имплементација:





 СимплеПојо {публиц цласс спроводи СимплеИнтерфаце





  



 @ Оверриде



  



 публиц воид Ф1 () {



    



 Систем.оут.принтлн ("Ф1");



    



 ф2 ();



  



 }





  



 @ Оверриде



  



 публиц воид ф2 () {



    



 Систем.оут.принтлн ("Ф2");



  



 }







 }



Напомињемо да је метод Ф1 () прави позив на ф2 ().
Сада ћемо да направимо прокси, како је већ рекао да је потребно да креирате контејнеру објекта и излаже све своје методе, онда проки це имплементирати интерфејс а затим делегат СимплеИнтерфаце све метод позива на прави објекат:






 СимплеПроки {публиц цласс спроводи СимплеИнтерфаце





  



 Приватна СимплеИнтерфаце делегирани;





  



 јавне СимплеПроки (СимплеИнтерфаце делегат) {



    



 супер ();



    



 тхис.делегате = делегат;



  



 }





  



 @ Оверриде



  



 публиц воид Ф1 () {



    



 Систем.оут.принтлн ("Делегирање Ф1 ()");



    



 делегате.ф1 ();



  



 }





  



 @ Оверриде



  



 публиц воид ф2 () {



    



 Систем.оут.принтлн ("Делегирање Ф2 ()");



    



 делегате.ф2 ();



  



 }







 }



У нашем једноставном примеру, проки ради се штампа поруку која каже да је делегирање позив.

Ми сада стварају главни тест да видим како наш представник:






 публиц цласс Главни {





  



 публиц статиц воид маин (Стринг [] аргс) {



    



 / / Креирање пример пасуља

 

    



 СимплеИнтерфаце реалБеан СимплеПојо = нев ();





    



 Систем.оут.принтлн ("##### пасуљ #####");



    



 реалБеан.ф1 ();



    



 Систем.оут.принтлн ();



    



 реалБеан.ф2 ();





    



 Систем.оут.принтлн ();





    



 / / Креирање пример прокси



    



 СимплеИнтерфаце СимплеПроки прокси = нев (нови СимплеПојо ());





    



 Систем.оут.принтлн ("##### прокси #####");



    



 проки.ф1 ();



    



 Систем.оут.принтлн ();



    



 проки.ф2 ();



  



 }







 }



Први блок кода даје следећи излаз:





 ##### Бин #####







 Ф1







 Ф2









 Ф2



Сада Човек би очекивао да излаз другог блока је следећи:





 ##### ##### Проки







 Делегирање Ф1 ()







 Ф1







 Делегирање Ф2 ()







 Ф2









 Делегирање Ф2 ()







 Ф2



Инвце не! Резултат ће бити као што следи:





 ##### ##### Проки







 Делегирање Ф1 ()







 Ф1







 Ф2









 Делегирање Ф2 ()







 Ф2



Као што се види позив који метод Ф1 () је метод ф2 () не пролазе кроз проки, јер када имате делегирани извршење метода објекта прави све интерне позиве неће бити пресретнута преко пуномоћника.
Из овог разлога не можете да креирате савете о методама које се зову од других метода објекта, односно може да се креира само ако су те методе користе спољне објекте, јер у супротном савет се неће извршити.
Proxy

Пролеће Јава Водич
Е-учење
Линук (курс) Линук (курс)
Комплетан водич за опен-соурце систем. Од 49 €.
ПХП (курс) ПХП (курс)
Цео курс за креирање динамичких веб сајтова. Од 49 €.
Руби и Руби он Раилс (курс) Руби и Руби он Раилс (курс)
Израду софтвера и веб апликација са рубином и РОР. Од 39 €.
Спонсоред Линкс