指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其它相关业务的处理。比如生活中的通过代理访问网络,客户通过网络代理连接网络(具体业务),由代理服务器完成用户权限和访问限制等与上网相关的其他操作(相关业务)。代理的思想在我们日常生活中无处不在。下面我通过一个简单的代码先大致了解一下代理的相关内。
示例代码如下:
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