..


Sponzorované odkazy

AOP - proxy

Pred dojemné vidieť, ako si vytvoriť s aspektom pointcuts a poradenstva, je veľmi dôležité pochopiť, ako proxy.
Proxy nie je nič iné ako obal (kontajner), ktorá obsahuje objekt a odhaľuje všetky verejné medodi objektu. Keď vyvoláte metódu na proxy vlastnú realizáciu tejto metódy je prenesená do objektu Wrap, čím sa za prítomnosti zástupcu úplne transparentné pre užívateľov.
Proxy používa jar AOP realizovať, ako je jednoduché delegát metódy tiež vysporiadať s rôznymi Manažérske poradenstvo.

Chápeme, ako sa proxy implementovať jednu veľmi jednoduché. Najprv sme vytvoriť jednoduchý interface:






 {Public interface SimpleInterface



	

  



 public void f1 ();



	

  



 public void f2 ();







 }



sme sa vytvoriť aj jednoduchý realizácie:





 SimplePojo {public class implementuje SimpleInterface





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("F1");



    



 f2 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("F2");



  



 }







 }



Berieme na vedomie, že táto metóda F1 () zavolá f2 ().
Poďme sa teraz vytvoriť proxy, ako už bolo povedané musíme vytvoriť kontajner objektu a odhaliť všetky jeho metódy, potom proxy bude implementovať rozhranie a delegát SimpleInterface metóda, volania na reálny objekt:






 SimpleProxy {public class implementuje SimpleInterface





  



 Súkromné ​​SimpleInterface delegovaných;





  



 verejné SimpleProxy (SimpleInterface delegáta) {



    



 super ();



    



 this.delegate = zástupcu;



  



 }





  



 @ Override



  



 public void f1 () {



    



 System.out.println ("Prenesenie F1 ()");



    



 delegate.f1 ();



  



 }





  



 @ Override



  



 public void f2 () {



    



 System.out.println ("Prenesenie F2 ()");



    



 delegate.f2 ();



  



 }







 }



V našom jednoduchom príklade, proxy robí, ak je tlačiť správu, ktorá hovorí, že je delegovanie volanie.

Vytvárame teraz hlavné test a zistite, ako sa naše proxy:






 {Public class Hlavné





  



 public static void main (String [] args) {



    



 / / Vytvorenie inštancie bean

 

    



 SimpleInterface realBean SimplePojo = new ();





    



 System.out.println ("##### fazuľa #####");



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Vytvorenie inštancie proxy



    



 SimpleInterface SimpleProxy proxy servera = new (nový SimplePojo ());





    



 System.out.println ("##### zastúpenie #####");



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Prvý blok kódu dáva nasledujúci výstup:





 Bean ##### #####







 F1







 F2









 F2



Teraz by sa dalo očakávať, že výkon druhého bloku je nasledujúci:





 ##### ##### Proxy







 Delegácie F1 ()







 F1







 Delegácie F2 ()







 F2









 Delegácie F2 ()







 F2



Invce nie! Výstup bude vyzerať nasledovne:





 ##### ##### Proxy







 Delegácie F1 ()







 F1







 F2









 Delegácie F2 ()







 F2



Ako je vidieť, že volanie metódy f1 () je metóda, f2 () neprejde cez proxy, pretože akonáhle ste postúpené metódy na reálny objekt všetky vnútorné hovory nebudú zachytené v zastúpení.
Z tohto dôvodu nemožno vytvoriť radu o metódach, ktoré sú volány z iných metód objektu, alebo skôr môžu byť vytvorené iba vtedy, ak sú tieto metódy používané vonkajších objektov, pretože inak rada sa nevykoná.
Proxy

Jarné Java Sprievodca
E-Learning
Linux (kurz) Linux (kurz)
Kompletný sprievodca pre open-source systému. Od 49 €.
PHP (kurz) PHP (kurz)
Celý kurz pre vytváranie dynamických webov. Od 49 €.
Ruby a Ruby on Rails (kurz) Ruby a Ruby on Rails (kurz)
Vytvoriť softvér a webových aplikácií s Ruby a ROR. Od 39 €.
Sponzorované odkazy