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