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

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


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



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

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


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


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


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


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


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


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


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


输出结果为:proxy ok


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


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


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


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


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


输出为:serviceSubject proxy ok


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


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


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


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


相关文章内容简介
推荐阅读
  • 12 2019-04
    没有客户?可以用代理IP去爬取用户信息吗?

    没有客户?可以用代理IP去爬取用户信息吗?有时候大家总会接到各类的推销电话,我们的信息是如何泄露出去的呢?这些业务人员是怎么拿到我们的电话信息?下面就以装修行业来说下:

  • 18 2019-10
    6招解决爬虫IP被封

    爬虫的时候,我们不可避免的会碰到IP被锁的情况,这是一场博弈。机智的爬虫工程师会使用怎么样的方法来解决IP受到限制的情况呢?

  • 25 2019-06
    封ip用免费的代理ip解决不了

    封ip用免费的代理ip解决不了,这是为什么呢?现在很多站长都会有抓取数据的需求,因此网络爬虫在一定程度上越来越火爆,其实爬虫的基本功能很简单,就是分析大量的url的html页面,从而提

  • 14 2020-01
    为何代理ip需要白名单

    现在代理IP服务商提供的IP大部分都需要绑定IP授权,也就是所谓的添加白名单,很多朋友都问能不能不要绑定IP,我有几十台或者100台服务器要使用呢,这样只能绑定几个IP根本满足不了我的要

  • 11 2019-03
    网站有反采集措施,无法采集信息怎么办

    现在数据这么多,想要获得一些有价值的信息,我们需要对海量的数据进行筛选,而想要获取这些数据,并不是那么简单,因为网站有反采集措施,无法大量的采集数据。这该怎么办呢?

  • 16 2019-04
    提取IP代理最佳使用方案

    爬虫使用了IP代理之后,还需要设置合理的使用方法,否则使用效果不够好,影响效率不说,还浪费IP资源的,加大成本的支出,那么提取IP代理最佳使用方案是怎样的呢?

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

大客户经理微信

微信公众号

微信公众号

回到顶部