装饰器模式

来源:互联网 发布:卡卡软件下载 编辑:程序博客网 时间:2024/04/30 10:30

class Component:pass    class ConcreateComponent(Component):     def __init__(self,name):         self.name=name     def display(self):        passclass Decorater(Component):    def __init__(self):        self.component=''    def decorate(self,component):        self.component=component            class ComponentDecA(Decorater):    def display(self):        print('Decorater--->A')        self.component.display()class ComponentDecB(Decorater):    def display(self):        print('Decorater--->B')        self.component.display()        if __name__=='__main__':    component=ConcreateComponent('Hero')#装饰对象    decA=ComponentDecA()#装饰器A    decA.decorate(component)#装扮        decB=ComponentDecB()#装饰器B    decB.decorate(decA)#装扮        decB.display()#展示

装饰模式(Decorator),动态的给一个对象添加一些额外的职责,先看图


Component是定义一个对象接口,可以给这些对象动态的添加职责。

ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。

Decorator装饰类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的

至于ConcreteDecorator就是具体的装饰对象,起到给Component添加职责的功能

我用python简单的实现了一下



原创粉丝点击