代理模式应用和实现
慕名思意,代理就是不直接访问。
为什么不直接访问呢?
1、记录访问。 如:http 的缓存代理
2、控制访问。如:Http 服务分发服务器(负载均衡)、反向代理、加速代理、授权代理 等
3、对于开发者来说的,封装服务变化。比如 代理的 目标发生了变化,客户端仍然通过代理访问,对于客户端是无感的。就像 租房子找 中介一样,不用操心他找了几个房东。
如何实现代理模式?
1、继承
2、组合类
如果只是上述是代理实现的原理, 代理 和目标类应该通过接口约束,这样客户端既可以使用代理也可以不使用如下图: