美文网首页Python精耕细作Python点滴
[Python设计模式] 04 - 代理模式

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

作者: 蓝色信仰 | 来源:发表于2015-03-29 10:44 被阅读742次

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

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

    基本原理

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

    代码结构

    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/

    相关文章

      网友评论

        本文标题:[Python设计模式] 04 - 代理模式

        本文链接:https://www.haomeiwen.com/subject/okpnxttx.html