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

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


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



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

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


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


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


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


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


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


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


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


输出结果为:proxy ok


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


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


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


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


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


输出为:serviceSubject proxy ok


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


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


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


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


相关文章内容简介
推荐阅读
  • 29 2019-04
    爬虫如何设置用代理和模拟浏览器访问

    爬虫如何设置用代理和模拟浏览器访问?爬虫要想活得久,势必是要把自己好好整下的,以用户的模式访问,这是活得最长久的方法。基于这个原因,我们在给爬虫伪装时,可以从IP地址以及访

  • 26 2019-06
    代理IP池多大比较合适?

    代理IP池多大比较合适?代理IP池的大小影响价格,有些人觉得自己使用的代理IP数量比较少,不需要使用多大的代理IP池,那么租用多大的代理IP池比较合适呢?

  • 02 2019-04
    营销补量工具--代理IP真的有效果吗?

    是否可以把代理IP使用在营销补量上面?这样做会不会有效果呢?现在除了电商行业以外,大部分行业都需要做一些补量的工作通过补量工作,可以很有效率的提高网站的转换率。效果有用,但

  • 04 2019-03
    用Java语言写爬虫原理与代码

    我们抓取网页,如果是数量比较多,考虑的是使用网络爬取去抓取,因为一般的机器采集非常容易被发现的。很多种语言都可以写爬虫,最常用的是Python,但Java写爬虫也很牛的。要使用Java写爬

  • 16 2019-04
    抓取过程中遇到代理服务器无法用怎么办?

    抓取过程中遇到代理服务器无法用怎么办?一个爬虫代码不是写好了就行,在运行的过程中或许会出现各种的问题,如JavaScript渲染,还有抓取信息不一致等等,不单单是代理服务器的问题。对

  • 28 2019-06
    爬虫用HTTP代理如何爬取信息

    爬虫用HTTP代理如何爬取信息?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外

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