静态代理模式

来源:互联网 发布:在中国卖的好跑车知乎 编辑:程序博客网 时间:2024/06/05 05:28

1.抽象角色:声明真实对象和代理对象的共同接口   Subject类

2.代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时可以操作真实对象的前后加上自己的一些操作。ProxySubject

3.真实角色:代理角色代表的真实对象,是我们最终要应用的对象  RealSubject

抽象类:Subject

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

真实角色:RealSubject

public class RealSubject extends Subject{@Overridepublic void request() {System.out.println("real subject");} }

代理角色:ProxySubject

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




原创粉丝点击