- /**
- * Proxy.java
- * proxy
- *
- * Function: TODO
- *
- * ver date author
- * ──────────────────────────────────
- * 2011-6-8 Leon
- *
- * Copyright (c) 2011, TNT All Rights Reserved.
- */
- package proxy;
- /**
- * ClassName:Proxy
- * Function: TODO ADD FUNCTION
- * Reason: TODO ADD REASON
- *
- * @author Leon
- * @version
- * @since Ver 1.1
- * @Date 2011-6-8
- */
- abstract class Subject {
- public abstract void request() ;
- }
- class RealSubject extends Subject{
- @Override
- public void request() {
- // TODO Auto-generated method stub
- System.out.println("This is my real Request...");
- }
- }
- public class Proxy extends Subject {
- /** Proxy中会包含对RealSubject的引用**/
- private RealSubject realSubject ;
- @Override
- public void request() {
- // TODO Auto-generated method stub
- //调用真实之前(optional)
- this.preRequest();
- if(realSubject==null){
- //调用真实角色
- realSubject = new RealSubject();
- }
- realSubject.request();
- //调用真实之后(optional)
- this.afterRequest();
- }
- private void preRequest(){
- System.out.println("before real request.....");
- }
- private void afterRequest(){
- System.out.println("after the real request......");
- }
- public static void main(String... args){
- Subject subject = new Proxy();
- subject.request();
- }
- }