..
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 F2Teraz 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 () F2Invce nie! Výstup bude vyzerať nasledovne:
##### ##### Proxy Delegácie F1 () F1 F2 Delegácie F2 () F2Ako 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í.

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