python设计模式(四)--代理模式(中)

原创
2016/05/12 17:24
阅读数 118

 

#!/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()

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
3 收藏
2
分享
返回顶部
顶部