您的位置:首页 > 新闻资讯 >文章内容
静态代理模式的简单分析--提供一种中间代理
来源:互联网 作者:admin 时间:2019-03-19 11:37:50

静态代理跟动态代理不一样,我们平常使用动态代理比较多,像一些需要频繁更换IP的项目都是找动态代理的,那么静态代理有什么用呢?


如果还不了代理的,可以先去看看关于代理的定义,对于静态代理,其实说白了就是为其它的对象提供一种中间代理,以控制对被访问者的访问,让我们先看下类图,结合类图,然后我们用代码走一遍。代理模式相关类关系图如下:



静态代理模式的简单分析--提供一种中间代理

1.首先我们需要定义一个被访问的对象接口,该接口是对被访问者或者被访问资源的抽取,也就是我们图中的Isubject,:


静态代理模式的简单分析--提供一种中间代理


2.定义一个被访问者或者被访问资源的具体实现类,也就是图中的SubjectImpl。如果你租过房子,找过中介,你应该就能明白,这个对象其实就是房主本人。


静态代理模式的简单分析--提供一种中间代理


3.定义一个被访问者或者被访问资源之间的代理实现类,在租房的过程中它其实就充当我爱我家的作用,你其实也可以理解为它充当的就是目标对象的影子,但是这个影子拥有比目标对象更多的功能,它内部需要注入一个被访问者的具体实例,其实这步操作就相当于在我爱我家那边需要挂上房主本人的信息;


静态代理模式的简单分析--提供一种中间代理


就这样,一个简单的静态代理模式就ok了,接下来,我们测试下,


静态代理模式的简单分析--提供一种中间代理


输出结果为:proxy ok


然而,在实际开发中,我们的需求在变,某天我们在此基础上引入更复杂的业务,这时,依旧采用原思路走,看代码:


4.定义一个代理SubjectProxy 的对象,同样的我们可以这么理解,我爱我家又拖了一家卖房中介卖房主的房子,而这个卖房中介肯定要收更多的钱,那么收钱就是新增的业务了;


静态代理模式的简单分析--提供一种中间代理


此时,测试demo怎么写嘞,还是一样的嘞,请看代码!


静态代理模式的简单分析--提供一种中间代理


输出为:serviceSubject proxy ok


静态代理具有代理模式的优点就是可以做到隔离业务代码与非业务代码。


静态代理的主要缺点是一个委托类对应于一个代理类,并且需要为每一个需要委托的方法编写相应的代理方法,对于项目中需要大量用到代理模式的情况,静态代理会增加非常多的代码量。


此外,由于代理类与委托类都实现了同样的接口,假设接口需要变动,代理类也需要同步变动,这样对于软件项目维护也会增加不少的工作量与难度。


跟着代理走,其实也简单,以上就是关于静态代理模式的一些知识,通过这个例子,大家了解比较深了。


相关文章内容简介
推荐阅读
  • 26 2019-03
    服务器代理的作用有哪些?

    现在服务器代理成为网站浏览的主要程序,也是各大网站运营过程中所必须承载的信息传递功能。那么服务器代理的作用具体有哪些呢?

  • 10 2019-07
    http代理能有效切换IP

    http代理能有效切换IP,如果需要切换ip,可以考虑使用http代理的,http代理的使用场景有:

  • 12 2019-04
    HTTP代理的普通代理和隧道代理

    估计很多人都不认识HTTP代理,什么是HTTP代理?HTTP代理存在2种形式,即普通代理和隧道代理,这两个都有什么不同呢?下面为大家简单的介绍一下:

  • 18 2019-03
    想解决IP限制问题,怎么获得不限量动态IP代理

    一些需要更换IP的项目,仅靠一个IP是无法完成,即使自己动手更换IP,效果也不大,因为很多地方使用的是局域网,内网IP怎么换都没有什么用,其外网IP是一致的。

  • 24 2019-06
    动态IP代理都能用来做些什么

    动态IP代理都能用来做些什么?“动态IP”、“代理”可能大家都听过,不过合起来“动态IP代理”,可能还是有不少人不知道的,我们来看看动态IP代理都能用来做些什么,这样大家可以更快的

  • 29 2019-04
    构建代理ip池的IP来源途径

    构建代理ip池的IP来源途径有哪些?使用爬虫程序都免不了出现问题的,有时候爬得正高兴呢,出现了一连串错误信息,查看后发现因为爬取太过频繁,被网站封了ip,那时起就有了构建代理ip池

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
HTTP代理IP爬虫
客服电话
13318873961