【编程学习】代理模式-打造代码的优雅之道
【编程学习】代理模式-打造代码的优雅之道
6Young代理模式
代理模式通常在以下的情形下使用:
- 在访问某个对象之前执行一个或多个重要的额外操作
- 访问敏感信息或关键功能前需要具备足够的权限
- 将计算成本较高的对象的创建过程延迟到用户首次真正使用时才进行(惰性求值)
常见类型有:
- 远程代理:实际存在于不同地址空间(如网络服务器)的对象在本地的代理者(对使用者透明)
- 虚拟代理:用于惰性求值,将一个大计算量对象的创建延迟到真正需要的时候进行
- 保护/防护代理:控制对敏感对象的访问
- 智能(引用)代理:在对象被访问时执行额外的动作,如引用计数或线程安全检查等
实现示例
我们来通过一个案例来看看代理模式具体做了什么。
首先我们定义一个用户信息管理的类KeyRecords
,其中拥有大量敏感的不宜公开的信息。
1 | class KeyRecords(Record): |
但是简单的一个类是无法保护其中的信息的,我们需要为其设置一个代理,并添加密码验证的过程。
1 | class ProxyRecords(Record): |
这样,通过代理模式,我们给KeyRecord
添加密码以及验证密码的步骤,就可以通过密码验证的方式保护用户信息了。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果