编程思想设计模式结构模式Structural代理模式Proxy

Posted 炼狱腾蛇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程思想设计模式结构模式Structural代理模式Proxy相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

编程思想设计模式结构模式Structural享元模式flyweight

编程思想设计模式结构模式Structuralfront_controller

九 合成(Composite)模式 --结构模式(Structural Pattern)

设计模式 设计原则实现高内聚低耦合的编程思想

设计模式初识结构型模式(Structural Pattern)

七适配器(Adapter)模式--结构模式(Structural Pattern)