//package Zastupnik; // Proxy pattern // "Subject" abstract class Subject { // Metodi abstract public void Request(); } // "RealSubject" class RealSubject extends Subject { // Metodi public void Request() { System.out.println("pozvan je RealSubject.Request()"); } } // "Proxy" class Proxy extends Subject { // polja RealSubject realSubject; // Metodi public void Request() { // koristi "lazy initialization" if( realSubject == null ) realSubject = new RealSubject(); realSubject.Request(); } } /// test public class Ilustracija { public static void main( String[] args ) { // kreiranje proxy-ja i zahtev usluge od proxi-ja Proxy p = new Proxy(); p.Request(); } } /* ZAKLJUCAK 1. Zahtev za realnim subjektom je prosledjen proxy-ju p koji cuva referencu na realni subjekt i kroz pristupu proxi-ju sa p.Request(); zapravo se pristupilo realnom subjektu */