设计模式12-命令模式
命令模式:将请求封装,用不同的请求对客户进行参数化,对请求排队或记录请求日志,及撤销操作。
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-命令模式相关推荐
- 设计模式 之 命令模式
2019独角兽企业重金招聘Python工程师标准>>> 设计模式 之 命令模式 命令模式比较简单,不过多赘述 为什么需要命令模式 将"行为请求者"与"行 ...
- 乐在其中设计模式(C#) - 命令模式(Command Pattern)
原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...
- 23种设计模式之命令模式和策略模式的区别
文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...
- 设计模式之命令模式(Command)摘录
23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...
- 一天学习一个设计模式之命令模式
命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对请求排队或记录请求日志,以及支持可撤销的操作. 代码如下: 1 /** 2 * 抽象命令角色类 3 */ ...
- python 命令模式_python 设计模式之命令模式
命令模式介绍: 在面向对象编程中,命令模式是概括所有方法信息的设计模式. 此模式对象包涵方法名,及其相关参数值. 命令模式是一个分类的观察者设计模式,在命令模式下,对象被概括为一个命令表单,此表单包涵 ...
- JAVA设计模式什么鬼(命令模式)——作者:凸凹里歐
命令模式,通常指的是一个对象向另一个对象发送信息指令的行为模型,比如父母命令孩子写作业.将军命令士兵进攻等.我们经过分析拆解方法会得到三个模块,首先得有命令发送方,接着是被传递的命令本身,最后就是命令 ...
- plsql执行command命令控制台出现乱码_设计模式系列 — 命令模式
点赞再看,养成习惯,公众号搜一搜[一角钱技术]关注更多原创技术文章.本文 GitHub org_hejianhui/JavaStudy 已收录,有我的系列文章. 前言 23种设计模式速记 单例(sin ...
- 设计模式复习-命令模式
#pragma once #include "stdafx.h" #include<set> #include<string> #include<io ...
- [Head First设计模式笔记]----命令模式
命令模式定义:将"请求"封装成对象,以便使用不同的请求.队列或者日志来参数化其他对象.命令模式也支持可撤销的操作. 类图: 适用设计方案举例:实现一种遥控器,该遥控器具有七个可编程 ...
最新文章
- cap理论与分布式事务的解决方案
- 牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!
- 涂鸦智能冲刺IPO,不卖硬件的AIoT公司,团队阿里云出身,腾讯是大股东
- BZOJ 1101: [POI2007]Zap
- 010 Android之逆向入门
- html 编辑器 es6,小技巧:一行代码让浏览器瞬间变成临时编辑器
- 【渝粤题库】广东开放大学 婚姻家庭法 形成性考核
- labelme标注文件转coco json,coco json转yolo txt格式,coco json转xml, labelme标注文件转分割,boxes转labelme json
- 解决QTcpSocket类中readAll()函数调用失败问题
- Cocos2d-x.3.0开发环境搭建
- Java是否存在内存泄露
- 【数学建模】BP神经网络算法模型
- 体验极好的临时邮箱,10分钟邮箱,极美观,速度特别快
- Java8 Function 用法简介
- 没有超级英雄?自己做一个java漫威英雄手办商城系统
- 数据驱动测试该怎么理解?真的像传说中的那么diao吗?
- of介词短语作定语_在英语句子中,介词短语都能做什么用?作定语?作表语?作状语?...
- video标签的属性详解
- HBase 常用操作
- Android:下载图片
热门文章
- 又被野外利用了!新曝光Office产品多个远程命令执行漏洞分析
- HTML --- 简单的标签
- HTML怎么让img 等比例缩放
- 千里之行始于足下---在“从普通走向优秀”的路上
- Android 报错:Conversion to Dalvik format failed: ...
- android Frame-By-Frame Animations(一帧一帧地播放动画)的使用
- Cisco路由器IOS映像恢复及升级方法
- java vert.x_使用Vert.x将JavaScript引入Java企业
- PHPeople如何保持联系并获得乐趣
- 牛客网 [编程题]餐馆