代理模式经常用在RPC中,用来控制真实访问的对象访问。比较容易理解,我们来看一个简单的例子:
# coding=utf8
class Interface:
def Request(self):
pass
class RealSubject(Interface):
"""
这个是我们要访问的真实接口
"""
def Request(self):
print "Real request."
class Proxy(Interface):
"""
这个是我们的代理接口
"""
def Request(self):
self.real = RealSubject()
self.real.Request()
if __name__ == "__main__":
p = Proxy()
p.Request()
这里我们通过Proxy对真实接口的引用,来进行真实接口访问控制。如果我们在真实接口中有些方法不想被直接访问,就可以在Proxy中控制。