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

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


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



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

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


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


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


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


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


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


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


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


输出结果为:proxy ok


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


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


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


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


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


输出为:serviceSubject proxy ok


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


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


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


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


相关文章内容简介
推荐阅读
  • 15 2019-06
    国外可以使用ip代理吗?

    国外可以使用ip代理吗?平常我们是可以翻墙的,这样即使身在国内也能看到国外的信息,那么反过来行不行呢?也就是说在国外看国内的信息。这到底可不可以啊!

  • 05 2019-09
    代理IP的地址怎么获取?

    获取代理服务器的IP地址,是使用它的前提条件。那么,我们能够通过什么方法去获得动态IP代理服务器的地址呢?

  • 30 2019-09
    用代理IP怎么连接外网?

    windows系统如果需要访问外网,像是连接外部软件进行操作,应该怎么开展呢?如果你需要从本地PC端访问Redis实例进行数据操作,可以通过在ECS上配置端口映射或者端口转发实现。

  • 19 2019-03
    代理模式的通俗解释:中介帮助房子主人卖房子

    代理服务器一般都是代理网络用户去取得网络信息,可以说是网络信息的中转站,我们很多时间都使用到代理服务器,只是我们不知道罢了。通俗来说,代理服务器就相当于一个中间人,也可以

  • 09 2019-07
    租用代理ip的参考标准!

    租用代理ip的参考标准!说起代理ip,估计不少人都使用过,如果需要租用一个,找哪家的比较好呢?

  • 14 2019-05
    HTTP代理对信息抓取的好处

    HTTP代理对信息抓取的好处在哪些?对于在互联网上工作的用户来说,代理IP并不是一种陌生的存在。如果您恰好是一名正在处理代码的专业人士,特别是如果您负责网络爬虫,那么你每天可能都

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

大客户经理微信

微信公众号

微信公众号

回到顶部