Reading Time: 1 minutes
Proxy Design Pattern in Python
Write a Python program to implement Proxy Design Pattern.
class Car: '''Resource-intensive object''' def driveCar(self): print("Driving Car....") class CarProxy: '''Relatively less resource-intensive proxy acting as middleman. Instantiates a Car object only if the driver is of age.''' def __init__(self): self.ageOfDriver = 15 self.car = None def driveCar(self): print("Proxy in action. Checking to see if the driver is of age or underage...") if self.ageOfDriver >= 18: # If driver is of age, let him drive the car. self.car = Car() self.car.driveCar() else: # Otherwise, don't instantiate the car object. print("Driver is underage. Can't drive the car.") # Instantiate the Proxy carProxy = CarProxy() # Client attempting to drive a car at the default age of 15. Logically, since he/she cannot have a driving license, there is no need to buy a car, or, in our case, make the car object. carProxy.driveCar() # OUTPUT: # Proxy in action. Checking to see if the driver is of age or underage... # Driver is underage. Can't drive the car. # Altering the age of the driver carProxy.ageOfDriver = 21 # Client attempting to drive a car at the default age of 21. Should succeed. carProxy.driveCar() # OUTPUT: # Proxy in action. Checking to see if the driver is of age or underage... # Driving Car....