..


Rėmėjų nuorodos

AOP - Proxy

Prieš pereinant prie pamatyti, kaip jums sukurti savo aspektas pointcuts ir patarimus, labai svarbu suprasti, kaip proxy.
Proxy yra nieko daugiau kaip įvynioti (konteinerių), kuriame yra objektas, ir atskleidžia visas viešąsias medodi objektas. Jei remtis metodas proxy faktinio įgyvendinimo metodo yra deleguotas į objektą wrap, todėl pagalbinio buvimas visiškai skaidri vartotojui.
Proxy naudoja Pavasario AOP įgyvendinti nei paprastas deleguoti metodai taip pat kovoti su įvairių valdymo konsultacijos.

Mes suprantame, kaip veikia proxy įgyvendinti vieną labai paprasta. Pirma, mes sukurti paprastą sąsają:






 {Visuomenės sąsaja SimpleInterface



	

  



 public void f1 ();



	

  



 public void F2 ();







 }



mes sukurti net paprastas įgyvendinimą:





 SimplePojo {visuomenės klasė įgyvendina SimpleInterface





  



 @ Valdymas



  



 public void f1 () {



    



 System.out.println ("F1");



    



 F2 ();



  



 }





  



 @ Valdymas



  



 public void F2 () {



    



 System.out.println ("F2");



  



 }







 }



Atkreipiame dėmesį, kad metodas f1 () leidžia skambinti į F2 ().
Leiskite dabar sukurti proxy, kaip jau sakė, mes turime sukurti objektą konteinerio ir atskleisti visus savo metodus, tada proxy įgyvendins sąsaja ir tada deleguoti SimpleInterface visų metodas reikalauja, kad nekilnojamojo objektas:






 Simpleproxy {visuomenės klasė įgyvendina SimpleInterface





  



 Asmeninis SimpleInterface deleguotas;





  



 visuomenės simpleproxy (SimpleInterface deleguoti) {



    



 super ();



    



 this.delegate = delegatas;



  



 }





  



 @ Valdymas



  



 public void f1 () {



    



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



    



 delegate.f1 ();



  



 }





  



 @ Valdymas



  



 public void F2 () {



    



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



    



 delegate.f2 ();



  



 }







 }



Mūsų paprastas pavyzdys, įgaliojimo ar yra atspausdinti pranešimą, kuriame sakoma, kad yra perduoti skambutį.

Mes kuriame dabar yra pagrindinis bandymas pamatyti, kaip mūsų proxy:






 visuomenės klasė Pagrindinės {





  



 public static void main (String [] args) {



    



 / / Sukuriamas iš pupelių instancijos

 

    



 SimpleInterface realBean SimplePojo = nauji ();





    



 System.out.println ("##### pupelių #####");



    



 realBean.f1 ();



    



 System.out.println ();



    



 realBean.f2 ();





    



 System.out.println ();





    



 / / Sukuriamas pagalbinio instancijos



    



 SimpleInterface simpleproxy proxy = nauji (naujas SimplePojo ());





    



 System.out.println ("##### proxy #####");



    



 proxy.f1 ();



    



 System.out.println ();



    



 proxy.f2 ();



  



 }







 }



Pirmojo bloko kodą priima šį galia:





 ##### Pupelių #####







 F1







 F2









 F2



Dabar galima tikėtis, kad antrojo bloko galia yra tokia:





 ##### ##### Proxy







 Delegavimas F1 ()







 F1







 Delegavimas F2 ()







 F2









 Delegavimas F2 ()







 F2



Invce ne! Produkcija bus taip:





 ##### ##### Proxy







 Delegavimas F1 ()







 F1







 F2









 Delegavimas F2 ()







 F2



Kaip matome skambinti, kad metodas f1 () yra metodas, F2 () neišsiskiria per proxy, nes kai jūs deleguotas Metodo vykdymo prie realaus objekto visus vidaus skambučiai nebus perimta pagal įgaliojimą.
Dėl šios priežasties jūs negalite sukurti patarimus dėl metodų, kurie yra vadinami iš kitų metodų, objekto, ar veikiau gali būti sukurta tik tada, jei šie metodai yra naudojami išorės objektus, nes kitaip patarimų nėra įvykdytas.
Proxy

Pavasario "Java" vadovas
E-mokymasis
"Linux" (kurso) "Linux" (kurso)
Užbaigti vadovą, kad atviro kodo sistema. Nuo 49 €.
PHP (kurso) PHP (kurso)
Visas kursas sukurti dinaminius interneto svetainių. Nuo 49 €.
Ruby ir Ruby on Rails (kurso) Ruby ir Ruby on Rails (kurso)
Sukurti programinę įrangą ir interneto programų su Ruby ir RoR. Nuo 39 €.
Rėmėjų nuorodos