23种设计模式介绍(Python示例讲解)(18)
2023-04-30 来源:飞速影视
Component: 抽象组件类,定义了基本的操作方法。Decorator: 装饰器类,实现了抽象组件类中定义的操作方法,并且它包含一个指向抽象组件类的引用。ConcreteComponent: 具体组件类,实现了抽象组件类中定义的操作方法。ConcreteDecorator: 具体装饰器类,扩展了装饰器类,以实现额外的功能。
温馨提示:
在装饰模式中,可以通过组合的方式来添加多个装饰器,从而实现对对象的多次装饰。同时,装饰器对象可以嵌套在其他装饰器对象内部,从而形成一个装饰器对象的树形结构,这种结构称为装饰器链。在执行操作时,装饰器对象会按照一定的顺序递归地调用装饰器链中的操作方法。
下面是一个装饰模式的 Python 实现示例:
from abc import ABC, abstractmethod# 定义抽象组件class Component(ABC): @abstractmethod def operation(self): pass# 定义具体组件class ConcreteComponent(Component): def operation(self): return "ConcreteComponent"# 定义抽象装饰器class Decorator(Component): def __init__(self, component: Component): self._component = component @abstractmethod def operation(self): pass# 定义具体装饰器 Aclass ConcreteDecoratorA(Decorator): def operation(self): return f"ConcreteDecoratorA({self._component.operation()})"# 定义具体装饰器 Bclass ConcreteDecoratorB(Decorator): def operation(self): return f"ConcreteDecoratorB({self._component.operation()})"if __name__ == "__main__": component = ConcreteComponent() decoratorA = ConcreteDecoratorA(component) decoratorB = ConcreteDecoratorB(decoratorA) print(decoratorB.operation())
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号