静态代理模式(不被推荐使用)

来源:互联网 发布:幸福魔方装饰公司 知乎 编辑:程序博客网 时间:2024/06/11 22:10

抽象角色

package com.ygl.proxy;


public  abstract  class Subject {
     public abstract void request();
}

//===================================

代理角色

package com.ygl.proxy;


public class ProxySubject extends Subject{
private RealSubject  realSubject;//代理角色内部引用了真实角色
@Override
public void request() {
this.preRequest();
if(null==realSubject){
realSubject=new RealSubject();
}
realSubject.request();//真实角色所完成的事情
   this.postRequest();
}
   private void postRequest() {
 System.out.println("post request");
}
   private void preRequest(){
 System.out.println("pre request");
  }
  
  
}

//===================================

真实角色

package com.ygl.proxy;



public class RealSubject extends Subject{


@Override
public void request() {

System.out.println("RealSubject");

}
   

}

//==============================

测试

package com.ygl.proxy;


public class Client {
public static void main(String[] args) {
Subject subject=new ProxySubject();
subject.request();
}
}


0 0
原创粉丝点击