23种设计模式之python实现--Decorator模式
2014-04-03 19:29
567 查看
#理解 #动态的给一个对象添加额外的职责 #例子 #假如有一只会叫的dog,现在让它叫的时候会张嘴 #Component class Animal(object): def speak(self): pass #ConcreateComponent class dog(Animal): def speak(self): print 'wangwang' #Decorator class Decorator(object): Component=None def speak(self): self.Component.speak() #ConcreateDecorator class ConcreateDecorator(Decorator): def __init__(self,Com): self.Component=Com def speak(self): self.openmouth() super(ConcreateDecorator,self).speak() def openmouth(self): print 'open mouth' #client if __name__=='__main__': ComcreateComponent=dog() dec=ConcreateDecorator(ComcreateComponent) dec.speak()
运行如图:
相关文章推荐
- 23种设计模式之装饰器模式(结构型,2 Decorator,c++实现)
- 23种设计模式之python实现--总结
- 23种设计模式之python实现--抽象工厂
- 23种设计模式之python实现--Composite模式
- 23种设计模式之python实现--State模式
- 23种设计模式之python实现--解释器模式
- 23种设计模式之python实现--Flyweight模式
- 23种设计模式之python实现--Prototype模式
- 23种设计模式之python实现--Adapter模式
- 23种设计模式之python实现--visitor模式
- 23种设计模式之python实现--Template模式
- 23种设计模式之python实现--中介者模式
- 23种设计模式之python实现
- 23种设计模式之python实现--单例模式
- 23种设计模式之python实现--builder模式
- 23种设计模式之python实现--command模式
- Head First 设计模式——装饰器(Decorator Pattern)——Python实现
- 23种设计模式之python实现--Facade模式
- 23种设计模式之python实现--Strategy模式
- 23种设计模式之python实现--职责链模式