一个类代理另一个类的功能
使用场景
- 直接访问对象带来的问题(对象在远程机器上,创建对象的开销很大,需要对访问进行控制)
- windows的快捷方式
Demo
"""代理模式"""class Image:def display(self):raise NotImplementedErrorclass RealImage(Image):def __init__(self, file_name):self.file_name = file_nameself.load_image_from_disk()def load_image_from_disk(self):print(f"loading image {self.file_name} ...")def display(self):print(f"display:{self.file_name}")class ProxyImage(Image):def __init__(self, file_name):self.file_name = file_nameself.real_image = Nonedef display(self):if self.real_image is None:self.real_image = RealImage(self.file_name)self.real_image.display()if __name__ == '__main__':image = ProxyImage('xxx.jpg')image.display()
