指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其它相关业务的处理。比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。代理的思想在我们日常生活中无处不在。下面我通过一个简单的代码先大致了解一下代理的相关内。
示例代码如下:
package com.yonyou.test;
/**
* 创建一个上网的接口
* @author 小浩
* @创建日期 2015-4-6
*/
public interface Network {
//用户真正的上网需求
void browse();
}
package com.yonyou.test;
/**
* 真正的上网需求类,实现Network接口
* @author 小浩
* @创建日期 2015-4-6
*/
public class Real implements Network{
@Override
public void browse() {
System.out.println("您好,当前用户正在上网操作~~~");
}
}
package com.yonyou.test;
/**
* 创建一个代理接口
* @author 小浩
* @创建日期 2015-4-6
*/
public class Proxy implements Network{
Network network=null;
//初始化被代理对象
public Proxy(Network network){
this.network=network;
}
//模式权限检查的操作
public void check(){
// 模拟权限检查
System.out.println("您好,我们正在检查当前用户是否有上网的权限...");
}
@Override
public void browse() {
//增强操作,模拟权限检查
check();
//用户真正的操作
network.browse();
}
}
package com.yonyou.test;
/**
* TreeSet测试类
* @author 小浩
* @创建日期 2015-4-3
*/
public class Test{
public static void main(String[] args) {
//创建代理类
Network network=new Proxy(new Real());
network.browse();
}
}
原文:http://www.cnblogs.com/xiohao/p/4395714.html