随笔记:组合模式之 宏命令(macro command)
随笔记:组合模式之 宏命令(macro command)
宏(计算机术语)
宏(英语:Macro):是一种批量处理的称谓。 宏就是一些命令组织在一起,作为一个单独命令完成一个特定任务。
图示流程
代码实现
<body><button id="button">按我</button><script>// 宏命令(macroCommand)/* 定义一个超级遥控器,可以控制家里的所有电器:打开空调,打开电视和音响,关门、开电脑、登录QQ【注】组合对象/叶对象,都使用统一的接口*/var MacroCommand = function () {return {commandList: [], //用于存放叶对象或组合对象add: function (command) {this.commandList.push(command);},execute: function () {for (var i = 0, command; command = this.commandList[i++];) {command.execute();}}};}var openAcCommand = {execute: function () {console.log("打开空调");}};// 电视和音响是连在一起的,所以可以用一个宏命令来组合打开电视和音响var openTvCommand = {execute: function () {console.log('打开电视');}};var openSoundCommand = {execute: function () {console.log('打开音响');}};var macroCommand1 = MacroCommand();macroCommand1.add(openTvCommand);macroCommand1.add(openSoundCommand);// 关门、打开电脑和登录QQ的命令var closeDoorCommand = {execute:function(){console.log('关门');}};var openPcCommand = {execute: function () {console.log('打开电脑');}};var openQQCommand = {execute: function () {console.log('登录QQ');}};var macroCommand2 = MacroCommand();macroCommand2.add(closeDoorCommand);macroCommand2.add(openPcCommand);macroCommand2.add(openQQCommand);// 现在把所有命令组合成一个超级命令var macroCommand = MacroCommand();macroCommand.add(openAcCommand);macroCommand.add(macroCommand1);macroCommand.add(macroCommand2);// 最后给遥控器绑定 超级命令var setCommand = (function(command){document.getElementById('button').onclick = function(){command.execute();}})(macroCommand)</script>
</body>
知行合一 - 王守仁(明朝思想家)
}})(macroCommand)
</script>
```
知行合一 - 王守仁(明朝思想家)
认识事物的道理与实行其事,是密不可分的。知是指内心的觉知,对事物的认识,行是指人的实际行为。它是中国古代哲学中认识论和实践论的命题,主要是关于认知实践方面的。
随笔记:组合模式之 宏命令(macro command)相关推荐
- 《Head First 设计模式》读书笔记——组合模式
承接上篇博客,我们需要修改所有的菜单,以满足可以添加子菜单,但是我们由于已经把整个项目的框架搭好了,不可能重新实现菜单,所以我们只能修改,那么我们需要做些什么呢? 树形结构,可以容纳菜单.子菜单和菜单 ...
- Java设计模式之结构型:组合模式
前言: 我们对于上面两幅图片肯定非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构.在数据结构中我们知道可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可 ...
- 设计模式学习笔记——组合(Composite)模式
设计模式学习笔记--组合(Composite)模式 @(设计模式)[设计模式, 组合模式, composite] 设计模式学习笔记组合Composite模式 基本介绍 组合案例 类图 实现代码 Ent ...
- 设计模式学习笔记(C++实现)(九)--组合模式
1.组合模式简介 英文名称 Composite 主要目的 该模式将对象组合成树形结构已表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性. 使用场景 1.当 ...
- 设计模式笔记(9)---组合模式(结构型)
Gof定义 将对象组合成树形结构以表示"部分--整体"的层次结构.Composite使得用户对单个对象和组合对象使用具有一致性. 在面向对象系统中,我们经常会遇到一类具有" ...
- Head First设计模式读书笔记八 第九章下 组合模式
之前的总结链接: https://blog.csdn.net/u011109881/article/details/58710579 对比headFirst书中的例子,我觉得书中的组合模式的例子比上面 ...
- 设计模式笔记九:组合模式
原文:http://www.runoob.com/design-pattern/ 少许个人理解,如有错误请指出.欢迎一起讨论. 组合模式(Composite Pattern) 又叫部分整体模式,是用于 ...
- 设计模式学习笔记(九)——Composite组合模式
Composite组合模式主要是应对这样的问题:一类具有"容器特征"的对象--即他们在充当对象的同时,又是其他对象的容器的情况.在编写时我们常常会造成:客户代码过多地依赖于对象容器 ...
- 《headfirst设计模式》读书笔记9-迭代器和组合模式
目录 1. 封装遍历 2. 定义迭代器模式 2.1 部分源码 2.1.1 MenuItem.h 2.1.2 Menu.h 2.1.3 Iterator.h 2.1.4 ArrayIterator.h ...
- 设计模式学习笔记(十一)-组合模式
树形结构在软件中随处可见,例如操作系统中的目录结构.应用软件中的菜单.办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得 ...
最新文章
- Centos 常用系统命令
- linux远程图形操作系统,二、Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面...
- Linux下LCD 10分钟自动关屏的问题总结
- WinJS实用开发技巧(4):Appbar中使用自定义图片
- 余承东:华为自研的麒麟A1芯片已经应用在了多款可穿戴产品中
- Docker : Docker使用DockerFile入门案例
- 【报告分享】2019Q3短视频KOL红人季度深度分析.pdf
- JS 运行、复制、另存为 代码。
- pta 习题集5-19 列车厢调度
- java实现文件夹复制_Java实现文件夹复制
- jsf标签_JSF Facelet标签示例教程
- Spring IOC知识点一网打尽!
- qt drawline 线类型
- idea2017破解教程
- 有哪些原版英文书籍值得推荐?
- 每天1分钟 经济学小知识
- 学生用计算机的功能,怎么使用学生专用计算器? 来看看吧
- source insight的查找功能
- 基于javascript扫雷小游戏,以前上学经常玩
- java变量的定义有哪些规则_Java变量详解