Advertisement

python 代理模式

阅读量:

本文的目录地址

此份代码位置

在某些应用中,在访问某个对象之前,在允许用户访问敏感信息的情况下完成一个或多个关键操作——这些操作应该确保用户具备相应的权限。类似地,在操作系统环境中也需要采取相同措施:为了在系统中安装新程序,用户必须拥有管理员权限。

上面提到的重要操作未必都与安全性直接相关。另一种情况是延迟初始化:我们希望将一个具有较高计算开销的对象的初始化推迟至用户首次实际调用该对象时。

这类操作通常使用一种称为"代理设计模式”的技术来实现(Proxy design pattern)。这种技术之所以被称为"代理"是因为它通过'替代表现体'或'替代表现者'的形式在访问实际对象之前完成核心功能并提供必要的服务或行为支持。这种机制使得系统能够隔离细节并提高灵活性与可扩展性。

  • 远程实例:实际分布在不同地址空间(如特定网络服务器)的实际实体拥有本地实例。
  • 延迟加载型虚拟实例旨在将大规模对象的构建推迟至必要时。
  • 安全防护型虚拟实例旨在确保敏感实体的安全性。
  • 智能引用型代理系统会在对象被访问时自动执行额外操作;例如,在引用计数或线程安全检测方面。

应用案例

由于涉及主流的代理方案至少四种类型的存在性问题,在代理设计模式中存在广泛的应用场景。

在构建基于私有网络或云平台的分布式系统时,在某些情况下我们希望本地代码无需关心该系统中的对象分布于本地还是远程计算

全部评论 (0)

还没有任何评论哟~