proxy学习笔记(静态代理)_1

来源:互联网 发布:移动硬盘与mac不兼容 编辑:程序博客网 时间:2024/06/05 20:55

 1. 代理中涉及的概念

1)抽象角色

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


 

2)真实角色(对抽象角色的实现,是真正客户端要操作的对象)

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


 

3)代理角色(对抽象角色的实现,持有真实较色的一个引用,可以在代理对象中进行附加操作)

public class ProxySubject extends Subject {//代理对象应该拥有一个真实对象的引用private RealSubject realSubject;@Overridepublic void reuquest() {this.preRequest();if(null == realSubject){realSubject = new RealSubject();}realSubject.reuquest();//真实角色所完成的事情this.postRequest();}private void preRequest(){System.out.println("pre request");}private void postRequest(){System.out.println("post request");}}

 

 

 

2. 定义一个客户端类的对象,实现通过代理类对目标类的操作

public class Client {/** * @param args */public static void main(String[] args) {Subject subject = new ProxySubject();subject.reuquest();}}


以上!

原创粉丝点击