装饰器模式
来源:互联网 发布:卡卡软件下载 编辑:程序博客网 时间: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简单的实现了一下
- c++装饰器模式
- 装饰器模式
- 装饰器模式
- 装饰器(Decorator)模式
- 装饰器模式
- 装饰器模式
- 装饰器模式
- 装饰器模式
- 装饰器模式
- 装饰器模式
- 装饰器(Decorator)模式
- 浅谈装饰器模式
- java 装饰器模式
- 装饰器(Decorator)模式
- 装饰器模式
- 装饰器(Decorator)模式
- 装饰器模式
- 装饰器模式
- zoj3707 Calculate Prime S
- 安卓笔记
- 跟你比起来,大部分人都像笨蛋
- 给你写的launchpad430--TIMER--系列1
- Android布局padding与margin的区别
- 装饰器模式
- vs2010 自动关闭
- stm32 调试正常,下载运行不正常
- 城市轨道交通客流特征分析的主要指标
- build web server based on nginx
- JavaScript的标题更换
- 关于寻找字符串结尾的方法讨论
- N的倍数-鸽巢原理
- Codility -- Triangle