23种设计模式之python实现--Decorator模式

来源:互联网 发布:软件测试知识点总结 编辑:程序博客网 时间:2024/05/02 04:26
#理解#动态的给一个对象添加额外的职责#例子#假如有一只会叫的dog,现在让它叫的时候会张嘴#Componentclass Animal(object):    def speak(self):        pass#ConcreateComponentclass dog(Animal):    def speak(self):        print 'wangwang'#Decoratorclass Decorator(object):    Component=None    def speak(self):        self.Component.speak()#ConcreateDecoratorclass ConcreateDecorator(Decorator):    def __init__(self,Com):        self.Component=Com    def speak(self):        self.openmouth()        super(ConcreateDecorator,self).speak()    def openmouth(self):        print 'open mouth'#clientif __name__=='__main__':    ComcreateComponent=dog()    dec=ConcreateDecorator(ComcreateComponent)    dec.speak()    

运行如图:



0 0
原创粉丝点击