[Python设计模式] 04 - 代理模式

需求变更应该尽早发现,发现的越早代码的抽象越容易,等到业务逻辑变得庞大复杂,已有代码已经到处在使用时,重构的成本就会变大,因此一开始的实现应该越简单越好,尽快完成并上线才是王道

代理模式:为其他对象提供一种代理,以控制对这个对象的访问。

基本原理

  • 代理类和实体类都继承同一个接口(或抽象基类),具有相同的功能接口。
  • 代理类内部维护一个实体类对象,真正的功能实现是调用改对象的接口。

代码结构

class Subject(object):
    def Request(self):
        raise NotImplementedError()

class RealSubject(Subject):
    def Request(self):
        print "真实请求"

class Proxy(Subject):
    def __init__(self):
        self.realSubject = RealSubject()

    def Request(self):
        self.realSubject.Request()

def client():
    proxy = Proxy()
    proxy.Request()

代理模式是一种比较常见的模式,比较典型的应用场景:

  • RPC调用:RPC API负责代理具体的网络API调用。
  • 虚拟代理:根据需要创建开销大的对象,提高性能。
  • 安全代理:用来控制真实对象访问是的饿权限。
  • 智能指针:当调用真实对象时,代理负责处理一些额外的工作。

原文地址:http://www.isware.cn/python-design-pattern/05-proxy/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,280评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,757评论 18 399
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,425评论 1 15
  • 1.抽象类 2.抽象方法 3.抽象类作用
    Marks阅读 1,459评论 0 0
  • 核算一下,我已经是第四次参加追梦活动了,从黄花菜小组,到八十二小组,再到keep for dream,然后是今天的...
    灸灸微笑阅读 1,130评论 0 0

友情链接更多精彩内容