0%

proxy

Proxy


定义

为其他对象提供代理以控制对这个对象的访问

栗子

我的梯子(V2Ray)

  • 当我请求网络时,我的梯子接受我的请求

  • 看看这是不是外国的域名(假如我开启了PAC)

      • 拦截请求,我来帮你做一些事
      • 放行

Proxy VS Adapter

Adapter把A接口转为B接口

Proxy不改变接口

应用

权限检查

  • 可以在调用目标接口前后添加一些功能

    • 栗子

      • 比如我的梯子(权限检查)
    • 为啥不直接在目标接口里实现呢?

      • 每个类应该各司其职
      • 我要开发一款梯子,有现成的接口可以调用,何必重复造轮子

Remote Proxy

  • 栗子

    • TeamViewer
  • 我的接口是个代理,这个代理负责把对方法的访问转化成远程调用

Virtual Proxy

  • 不到万不得已,代理对象是不会创建的

  • 栗子

    • JDBC

      • 执行SQL语句才创建代理对象

Protection Proxy

  • 用代理对象控制对原始对象的访问

Smart Reference

  • 可以smart的释放资源