代理模式学习

转自:https://www.runoob.com/design-pattern/proxy-pattern.html

1.例子

接口:

实体类: 

 代理类: 

其数据成员包含了一个被代理的类对象。

 通过代理类来实现对原类的访问,可以实现缓存。

2.作用

https://refactoringguru.cn/design-patterns/proxy

  1. 延迟初始化 (虚拟代理 如果你有一个偶尔使用的重量级服务对象,你无需在程序启动时就创建该对象 可将对象的初始化延迟到真正有需要的时候
  2.  访问控制 (保护代理 如果你只希望特定客户端使用服务对象 这里的对象可以是操作系统中非常重要的部分 而客户端则是各种已启动的程序 (包括恶意程序 此时可使用代理模式
  3. 本地执行远程服务 (远程代理 适用于服务对象位于远程服务器上的情形
  4. 缓存请求结果 (缓存代理 适用于需要缓存客户请求结果并对缓存生命周期进行管理时 特别是当返回结果的体积非常大时 代理可对重复请求所需的相同结果进行缓存 还可使用请求参数作为索引缓存的键值。【所有的代理其实都有缓存的功能,比如代理服务器。】

 

posted @ 2022-11-06 00:55  lypbendlf  阅读(23)  评论(0编辑  收藏  举报