命令模式:将请求封装,用不同的请求对客户进行参数化,对请求排队或记录请求日志,及撤销操作。

 1 namespace DesignModel.命令模式
 2 {
 3     abstract class Command
 4     {
 5         protected Execer exe;
 6         public Command(Execer execer)
 7         {
 8             this.exe = execer;
 9         }
10         abstract public void ExecCommand();
11     }
12
13     class CommandOne : Command
14     {
15         public CommandOne(Execer execer) : base(execer) { }
16         public override void ExecCommand()
17         {
18             exe.ExecCommandOne();
19         }
20     }
21     class CommandTwo : Command
22     {
23         public CommandTwo(Execer execer) : base(execer) { }
24         public override void ExecCommand() => exe.ExecCommandTwo();
25
26     }
27
28     class Execer
29     {
30         public void ExecCommandOne() => Console.WriteLine("");
31         public void ExecCommandTwo() => Console.WriteLine("");
32      }
33
34
35     class Builder
36     {
37         IList<Command> list = new List<Command>();
38         public Builder SetBuilder(Command command)
39         {
40             list.Add(command);
41             return this;
42         }
43         public void Remove(Command command)
44         {
45             list.Remove(command);
46         }
47         public void Notify()
48         {
49              list.All(x => { x.ExecCommand(); return true; });
50         }
51     }
52 }
53  static void 命令模式()
54         {
55             Execer execer = new Execer();
56             Command c1 = new CommandOne(execer);
57             Command c2 = new CommandTwo(execer);
58             var builder = new DesignModel.命令模式.Builder();
59             builder.SetBuilder(c1).SetBuilder(c2).Notify();
60          }

View Code

优点:

1可以设计命令队列;

2允许命令接收方否决命令;

3新增具体命令类不影响其它部分。

转载于:https://www.cnblogs.com/liurui/p/5562598.html

设计模式12-命令模式相关推荐

  1. 设计模式 之 命令模式

    2019独角兽企业重金招聘Python工程师标准>>> 设计模式 之 命令模式 命令模式比较简单,不过多赘述 为什么需要命令模式 将"行为请求者"与"行 ...

  2. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  3. 23种设计模式之命令模式和策略模式的区别

    文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...

  4. 设计模式之命令模式(Command)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. 一天学习一个设计模式之命令模式

    命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作. 代码如下: 1 /** 2 * 抽象命令角色类 3 */ ...

  6. python 命令模式_python 设计模式之命令模式

    命令模式介绍: 在面向对象编程中,命令模式是概括所有方法信息的设计模式. 此模式对象包涵方法名,及其相关参数值. 命令模式是一个分类的观察者设计模式,在命令模式下,对象被概括为一个命令表单,此表单包涵 ...

  7. JAVA设计模式什么鬼(命令模式)——作者:凸凹里歐

    命令模式,通常指的是一个对象向另一个对象发送信息指令的行为模型,比如父母命令孩子写作业.将军命令士兵进攻等.我们经过分析拆解方法会得到三个模块,首先得有命令发送方,接着是被传递的命令本身,最后就是命令 ...

  8. plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式

    点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...

  9. 设计模式复习-命令模式

    #pragma once #include "stdafx.h" #include<set> #include<string> #include<io ...

  10. [Head First设计模式笔记]----命令模式

    命令模式定义:将"请求"封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 类图: 适用设计方案举例:实现一种遥控器,该遥控器具有七个可编程 ...

最新文章

  1. cap理论与分布式事务的解决方案
  2. 牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!
  3. 涂鸦智能冲刺IPO,不卖硬件的AIoT公司,团队阿里云出身,腾讯是大股东
  4. BZOJ 1101: [POI2007]Zap
  5. 010 Android之逆向入门
  6. html 编辑器 es6,小技巧:一行代码让浏览器瞬间变成临时编辑器
  7. 【渝粤题库】广东开放大学 婚姻家庭法 形成性考核
  8. labelme标注文件转coco json,coco json转yolo txt格式,coco json转xml, labelme标注文件转分割,boxes转labelme json
  9. 解决QTcpSocket类中readAll()函数调用失败问题
  10. Cocos2d-x.3.0开发环境搭建
  11. Java是否存在内存泄露
  12. 【数学建模】BP神经网络算法模型
  13. 体验极好的临时邮箱,10分钟邮箱,极美观,速度特别快
  14. Java8 Function 用法简介
  15. 没有超级英雄?自己做一个java漫威英雄手办商城系统
  16. 数据驱动测试该怎么理解?真的像传说中的那么diao吗?
  17. of介词短语作定语_在英语句子中,介词短语都能做什么用?作定语?作表语?作状语?...
  18. video标签的属性详解
  19. HBase 常用操作
  20. Android:下载图片

热门文章

  1. 又被野外利用了!新曝光Office产品多个远程命令执行漏洞分析
  2. HTML --- 简单的标签
  3. HTML怎么让img 等比例缩放
  4. 千里之行始于足下---在“从普通走向优秀”的路上
  5. Android 报错:Conversion to Dalvik format failed: ...
  6. android Frame-By-Frame Animations(一帧一帧地播放动画)的使用
  7. Cisco路由器IOS映像恢复及升级方法
  8. java vert.x_使用Vert.x将JavaScript引入Java企业
  9. PHPeople如何保持联系并获得乐趣
  10. 牛客网 [编程题]餐馆