模式之代理设计"/>
设计模式之代理设计
代理设计也是在java开发中使用较多的一种设计模式。
所谓的代理设计就是代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理,就好像在生活中经常使用的代理上网一样,客户通过网络代理连接网络,由代理服务器完成用户权限和访问限制等与上网相关的的操作,如图所示
不管是代理操作还是真实的操作,其共同的目的就是上网,所以用户关心的只是上网,至于具体是如何操作的用户并不关心,所以就可以得出如图所示的分析结果
从图中可以发现,只需要定义一个上网的接口,代理主题和真实主题都同时实现此接口,然后再由代理操作真实主题即可,以上要求可以用以下代码描述:
interface Network{public void browse() ; // 浏览
}
class Real implements Network{public void browse(){System.out.println("上网浏览信息") ;}
};
class Proxy implements Network{private Network network ; // 代理对象public Proxy(Network network){thiswork = network ;}public void check(){System.out.println("检查用户是否合法。") ;}public void browse(){this.check() ;thiswork.browse() ; // 调用真实的主题操作}
};
public class ProxyDemo{public static void main(String args[]){Network net = null ;net = new Proxy(new Real()) ;// 指定代理操作net.browse() ; // 客户只关心上网浏览一个操作}
};
程序运行结果:
检查用户是否合法
上网浏览信息
以上程序的执行流程如图所示:
从图可以看出,真实主题完成的只是上网的最基本的功能,而代理主题要做的比真实主题更多的业务相关的操作。
更多推荐
设计模式之代理设计
发布评论