您的位置:首页 > 其它

代理(Proxy)模式简介

2015-03-21 00:55 225 查看

一、代理(Proxy)模式简介

代理模式是结构型模式。

代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

代理对象要继承于抽象主题,并控制原对象的引用

二、简单例子

抽象主题类

package proxy;
/*
* 抽象主题
*/
public abstract class Subject {
/*
* 请求方法
*/
abstract public void Request();
}


真实主题类,继承抽象

package proxy;
/*
* 真实主题
*/
public class RealSubject extends Subject {

@Override
public void Request() {
System.out.println("真实主题实现请求!");

}

}


代理主题

package proxy;
/*
* 代理主题
*/
public class ProxySubject extends Subject {
private RealSubject realSubject;
@Override
public void Request() {
//请求前代理主题自己的操作
preRequest();
//判断是否为空
if(realSubject==null){
//实例化
realSubject=new RealSubject();
}
//调用真实主题的响应方法
realSubject.Request();
//请求后代理主题自己的操作
postRequest();
}
private void preRequest(){
System.out.println("请求前代理主题自己的操作!");
}

private void postRequest(){
System.out.println("请求后代理主题自己的操作!");
}

}


测试类

package proxy;
/*
* 代理主题测试类
*/
public class Test {

public static void main(String[] args) {
//声明抽象主题,并实例化为代理主题
Subject subject=new ProxySubject();
//调用代理主题的响应方法
subject.Request();

}

}


结果:

请求前代理主题自己的操作!
真实主题实现请求!
请求后代理主题自己的操作!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: