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

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


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



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

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


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


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


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


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


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


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


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


输出结果为:proxy ok


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


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


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


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


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


输出为:serviceSubject proxy ok


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


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


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


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


相关文章内容简介
推荐阅读
  • 02 2019-07
    难道HTTP代理比SOCKS5代理好用?

    难道HTTP代理比SOCKS5代理好用?说起HTTP代理IP,很多朋友都知道,也知道怎么使用,然而说起SOCKS5代理IP,很多朋友都是一脸茫然,那是什么玩意,用来做什么的。很多朋友咨询代理IP时,看到机

  • 28 2019-11
    Python爬虫设置代理IP使用

    Python爬虫为什么要使用代理IP?Python爬虫又要怎么完成设置代理IP?今天,机灵代理围绕着这两个问题,来给大家进行全面的介绍,希望能够解答到大家的疑问。

  • 24 2019-08
    动态IP代理在爬虫中怎么实现?

    通常在写爬虫时,网站都会针对有对应的防爬措施,就像是会限制你的单个IP访问次数,但是爬虫反复抓取,IP多次访问无法避免,那么这种问题我们通过代理IP,还能如何解决呢?

  • 05 2019-05
    用了匿名代理IP还能检测本地IP么?

    用了匿名代理IP还能检测本地IP么?有些人是会有这样的担心,小编告诉大家,这并不一定的。因为匿名有高匿名和普通匿名的,自然是高匿名的效果好,普通匿名的效果相对差些,就是差这么

  • 28 2019-04
    专业的动态代理ip软件推荐

    专业的动态代理ip软件推荐,有些用户想要使用动态代理ip,但又苦恼找不到好的,今天小编就来给大家推荐一款。

  • 20 2019-02
    爬虫的请求头应该怎写不会被发现?

    网站的反爬虫存在于整个爬虫获取数据流程里面,爬虫首先会遇到请求的问题,如果爬虫不伪装浏览器发送请求,那么就会被网站检测到爬虫,从而禁止访问,拒绝返回信息。那么爬虫的请求头

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

大客户经理微信

微信公众号

微信公众号

回到顶部