1. 程式人生 > >【編程思想】【設計模式】【結構模式Structural】代理模式Proxy

【編程思想】【設計模式】【結構模式Structural】代理模式Proxy

bsp face 分享 odi abi from sel code utf

Python版

https://github.com/faif/python-patterns/blob/master/structural/proxy.py

技術分享圖片
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
*TL;DR80
Provides an interface to resource that is expensive to duplicate.
"""

from __future__ import print_function
import time


class SalesManager:
    def talk(self):
        
print("Sales Manager ready to talk") class Proxy: def __init__(self): self.busy = No self.sales = None def talk(self): print("Proxy checking for Sales Manager availability") if self.busy == No: self.sales = SalesManager() time.sleep(
0.1) self.sales.talk() else: time.sleep(0.1) print("Sales Manager is busy") class NoTalkProxy(Proxy): def talk(self): print("Proxy checking for Sales Manager availability") time.sleep(0.1) print("This Sales Manager will not talk to you
", "whether he/she is busy or not") if __name__ == __main__: p = Proxy() p.talk() p.busy = Yes p.talk() p = NoTalkProxy() p.talk() p.busy = Yes p.talk() ### OUTPUT ### # Proxy checking for Sales Manager availability # Sales Manager ready to talk # Proxy checking for Sales Manager availability # Sales Manager is busy # Proxy checking for Sales Manager availability # This Sales Manager will not talk to you whether he/she is busy or not # Proxy checking for Sales Manager availability # This Sales Manager will not talk to you whether he/she is busy or not
Python轉載版

【編程思想】【設計模式】【結構模式Structural】代理模式Proxy