设计模式之代理模式

代理模式(Proxy)

定义

Provide a surrogate or placeholder for another object to control access to it.
(为其他对象提供一种代理,以控制对这个对象的访问。)

说明

代理模式又称为委托模式,是一种使用频率非常高的模式,在其他设计模式中也会采用委托模式,比如状态模式,策略模式,访问者模式等在本质上也是一种特殊场合下的委托模式。而且在日常应用中也能找到代理模式的影子,比如vpn代理。比如我们经常接触的AOP(切面编程)就是通过动态代理实现的,有类似于Spring AOP 和 AspectJ这样的优秀工具。

静态代理模式类图:
请添加图片描述

强制指定代理类图:
请添加图片描述

动态代理类图(基于JVM):
请添加图片描述

结构

代理模式的角色:
Proxy (代理):提供了与真实主题相同的接口,它里面包含真实主题的引用,可以对真实主题访问,控制,增强等。
Subject (抽象主题):通过接口或抽象类对真实主题和代理对象实现业务的约束。
RealSubject (真实主题):被代理的对象,实现了抽象主题的方法,代理对象指向的对象,最终要被引用的对象。

代理模式的优点
  1. 代理模式在客户端与目标对象之间起到中介的作用,可以有效保护目标对象的信息,实现了系统的安全性。
  2. 代理对象可以扩展目标对象的功能。
  3. 代理对象可以过滤不安全的访问,从而起到保护目标对象的作用。
  4. 代理模式在一定程度上将调用者与实现分离,降低了系统的耦合性,提高了扩展性。
代理模式的应用

代理模式的优点非常多,运用也非常多,比如nginx、Apache这种反向代理的服务,切面编程等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值