大话设计模式之Python实现【代理模式】

# coding=utf8

__author__ = 'smilezjw'


class Subject(object):
    """
    Subject类定义了RealSubject和Proxy的共用接口
    """
    def Request(self):
        pass


class RealSubject(Subject):
    """
    RealSubject类定义Proxy所代表的真实实体
    """
    def Request(self):
        print 'Real request'


class Proxy(Subject):
    """
    通过引用来访问实体
    """
    def Request(self):
        real_subject = RealSubject()
        real_subject.Request()

if __name__ == '__main__':
    proxy = Proxy()
    proxy.Request()

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

1.远程代理:为一个对象在不同的地址空间提供局部代表,如项目中添加Web引用会生成WebReference文件,其实这些文件就是代理,使得客户端调用代理就可以解决远程访问Web的问题。

2.虚拟代理:比如有很多文字和图片的HTML网页,用户能够很快的打开看到文字和图片框,就是通过虚拟代理替代了真实的图片,代理存储了真实图片的路径和尺寸。

3.安全代理:用来控制真实对象的访问权限。

你可能感兴趣的:(大话设计模式之Python实现【代理模式】)