#!/usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = 'https://github.com/faif'
import time
class 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()