写点什么

软件测试 | 设计模式——代理设计

  • 2023-08-08
    北京
  • 本文字数:1099 字

    阅读完需:约 4 分钟

更多学习资料戳!!!

代理设计也就是 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()  ;                      //客户只关心上网浏览一个功能     }  }      
复制代码


程序运行结果:


检查用户是否合法


上网浏览信息


以上程序的执行流程如图所示


真实主题完成的只是上网的最基本功能,而代理主题要做比真实主题更多的业务相关的操作。

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 设计模式——代理设计_测试_测吧(北京)科技有限公司_InfoQ写作社区