#!/usr/bin/env python# -*- coding: utf-8 -*-# __author__ = 'https://github.com/faif'import timeclass SalesManager: """真实实体类对象, 它就没有采用公共接口.""" def work(self): print("Sales Manager working...") def talk(self): print("Sales Manager ready to talk")class Proxy: """ 代理类, 需要加载(SalesManager())真实实体类对象, 利用这个真实实体类所提供的方法为外部人员提供服务 """ def __init__(self): self.busy = 'No' self.sales = None def work(self): print("Proxy checking for Sales Manager availability") if self.busy == 'No': self.sales = SalesManager() time.sleep(2) self.sales.talk() else: time.sleep(2) print("Sales Manager is busy")class NoTalkProxy(Proxy): def __init__(self): Proxy.__init__(self) def work(self): print("Proxy checking for Sales Manager availability") time.sleep(2) print("This Sales Manager will not talk to you whether he/she is busy or not")if __name__ == '__main__': p = Proxy() p.work() p.busy = 'Yes' p.work() p = NoTalkProxy() p.work() p.busy = 'Yes' p.work()