装饰器设计模式
来源:互联网 发布:视频压缩简易算法 编辑:程序博客网 时间:2024/05/22 11:45
装饰者模式的适用场景
1、在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
2、需要动态地给一个对象增加功能,这些功能也可以动态地被撤销。 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。
参与者:
Component: 抽象构件,可以给这些对象动态地添加职责。
ConcreteComponent:具体构件。是定义了一个具体的对象,也可以给这个对象添加一些职责。
Decorator: 抽象装饰类。是装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator存在的。
ConcreteDecorator:具体装饰类,起到给Component添加职责的功能。
namespace 装饰器模式{ //抽象构件,可以给这些对象动态地添加职责。 public abstract class BaseGame { public abstract void Show();//显示一下穿的装备 }}
class Magic : BaseGame {//具体构件。是定义了一个具体的对象,也可以给这个对象添加一些职责。 public override void Show() { Console.WriteLine(@"我叫Way,我是一个裸装法师."); } }
class BaseDecorator : BaseGame {//抽象装饰类。是装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator存在的。 private readonly BaseGame _game = null; public BaseDecorator(BaseGame game) {//结构型设计模式的标配 _game = game; } public override void Show() { _game.Show(); } }
class 带头盔 : BaseDecorator {//具体装饰类,起到给Component添加职责的功能。 public 带头盔(BaseGame gm) : base(gm)//表示调用父类带参数的构造函数 { } public override void Show() { base .Show(); Console.WriteLine(@"获得了一个青铜头盔."); } }
最后结果
阅读全文
1 0
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 装饰器设计模式
- 设计模式---装饰器模式
- 设计模式--装饰器模式
- 设计模式<装饰器模式>
- 设计模式-装饰器模式
- 设计模式--装饰器模式
- 设计模式-装饰器模式
- 设计模式--装饰器模式
- 设计模式之装饰器
- Java 装饰器设计模式
- 设计模式之装饰器
- iOS拍摄视频,自定义拍摄界面,高清压缩,添加水印
- 【HDU
- 数据结构封装之《LinkStack链栈》
- dorado下maven项目bdf2核心jar包缺少部分包
- val arr = Array("aaa", "bbb", "ccc") 和 val list = List(1, 2, 3)
- 装饰器设计模式
- 获取文件类型使用 finfo_file 内置函数
- 【云隐课堂】ESP8266的烧录说明(ESP_DOWNLOAD_TOOL使用指导)
- JSON与JAVA数据的转换
- 数据结构封装之《SeqList顺序栈》
- 最小乘积_基本型_快速排序实现
- @Override重写与@Overload重载
- iframe去掉水平滚动条
- 栈的应用:左右符号匹配