Python实现代理模式

Posted 青山应回首

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现代理模式相关的知识,希望对你有一定的参考价值。

 

from abc import ABCMeta, abstractmethod


NOT_IMPLEMENTED = "You should implement this."


class AbstractCar:
    __metaclass__ = ABCMeta

    @abstractmethod
    def drive(self):
        raise NotImplementedError(NOT_IMPLEMENTED)


class Car(AbstractCar):
    def drive(self):
        print("Car has been driven!")


class Driver(object):
    def __init__(self, age):
        self.age = age


class ProxyCar(AbstractCar):
    def __init__(self, driver):
        self.car = Car()
        self.driver = driver

    def drive(self):
        if self.driver.age <= 16:
            print("Sorry, the driver is too young to drive.")
        else:
            self.car.drive()


driver = Driver(16)
car = ProxyCar(driver)
car.drive()

driver = Driver(25)
car = ProxyCar(driver)
car.drive()

  

摘自:wiki

 

以上是关于Python实现代理模式的主要内容,如果未能解决你的问题,请参考以下文章

Python实现代理模式

python-代理模式

用实例理解设计模式——代理模式(Python版)

代理设计模式详解C/Java/JS/Go/Python/TS不同语言实现

java代码实现设计模式之代理模式

代理模式之静态代理实现代码