设计模式 —— Proxy 模式

1 什么是代理模式

  • 为目标对象提供一个代理对象,以控制目标对象的访问(关键是控制访问!)
  • 用户只能通过代理对象来访问目标对象

2 什么情况用代理模式

  • 远程代理: 为一个对象在远程地址提供一个代理,客户端通过访问这个代理对象来访问远程对象,代理对象隐藏了网络访问的细节
  • 虚代理: 控制目标对象创建的时机,如网页加载,图片加载比较耗时间,所以可以先加载一个虚图片(假的占位的图片),再慢慢刷新成真实的图片
  • 保护代理: 控制对原始对象的访问。及不同用户对原始对象有不同的访问权限
  • 智能引用: 访问对象时,执行一些附加的操作。(这个和装饰者模式差不多)

3 为什么使用代理模式

  • 主要是控制用户对原始对象的访问
  • 使用代理模式可以使用户和真实对象解耦

4 远程代理示例

5 虚代理示例

6 保护代理示例

7 动态代理示例(智能引用)

8 静态代理示例

  • 在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了
  • 除了动态代理别的代理类型一般都是静态代理
  • 当然 虚代理、保护代理等都可以由静态代理来实现!

9 缓存代理示例

10 UML 类图

  • 这是静态代理类UML图,动态代理在运行期间生成类,最后也就是静态代理的形式
    在这里插入图片描述

参考

虚拟代理模式-Virtual Proxy(Java实现)
代理模式(三):远程代理,虚拟代理,缓冲代理
动态代理与静态代理区别
JAVA学习篇–静态代理VS动态代理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值