🍝 代理模式

吞佛童子2022年6月20日
  • 设计模式
  • 结构型
  • 代理模式
大约 2 分钟

🍝 代理模式

1. 概述

1) 是什么

  • 可对原有实现方法添加额外操作,进行 方法包装 | 方法增强
  • 为其他对象提供一种代理以控制对这个对象的访问
  • 通常只代理一个接口
  • 某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。
  • 客户端分辨不出代理主题对象与真实主题对象。
  • 代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。

2) 优点

3) 缺点


2. 代码示例

1) 场景 & 目标

  • 有吃萝卜这个功能
  • 希望第三方可以给这个功能增加前置操作 & 后置操作
  • 而自己只需要跟第三方联系

2) 代码示例


3. 应用

1) AOP

  • 进行增强,例如添加 日志服务、方法拦截等
  • 一般情况下,在织入切面时,AOP容器会为目标对象创建动态的创建一个代理对象

2) 远程代理。

  • 操作远程对象
  • 比如:Dubbo、gRPC,提供远程服务,客户端调用时需要走参数组装、序列化、网络传输等操作,
  • 这些通用逻辑都可以封装到代理中,客户端调用代理对象访问远程服务,就像调用本地对象一样方便。
上次编辑于: 2022/6/20 下午8:24:47
贡献者: liuxianzhishou