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

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


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



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

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


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


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


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


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


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


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


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


输出结果为:proxy ok


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


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


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


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


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


输出为:serviceSubject proxy ok


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


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


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


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


相关文章内容简介
推荐阅读
  • 01 2019-06
    代理IP能让爬虫早点完成任务

    代理IP能让爬虫早点完成任务,这是为什么大部分的爬虫都会使用代理IP的原因,就是加快速度!

  • 22 2019-05
    用代理服务器节约大量的IP

    用代理服务器节约大量的IP,为什么需要节约IP呢?虽然网络无处不在,连接网络也是需要IP地址的,但是目前尚未能做到设备连接的都是公网IP,尤其是中国,网民数量接近10个亿,IPv4本来也就4

  • 15 2019-10
    选用代理IP的好处以及注意事项

    互联网的技术不断在革新,技术与人们生活进行融合,带来了便利,其中代理IP也在人们的工作以及生活中派上用场。

  • 26 2019-06
    爬虫被识别是不是用了透明代理

    爬虫被识别是不是用了透明代理?有时候爬虫在采集数据时,使用代理IP,有的代理IP没事,有的代理IP直接重定向,这是不是代理IP质量问题?

  • 18 2020-06
    选择高品质的ip代理软件

    人们平时选择代理商的状况下,是借助什么方式呢?是立即借助网络上搜索,或是朋友建议?无论是哪一种方式,在选择代理商的状况下,我们都要严肃认真的对代理商的资格,代理商IP的产品质

  • 26 2020-04
    ip代理软件能顶替传统网线吗

    很多游戏工作室为了可以多开防封都会开通多条网线,通过不同的网线变换账号从而模拟出多个ip操作的假象,这样就不会被平台封禁了。但是这种方法的成本高昂,一条网线就要几百块,算下

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部