linkin大话设计模式--命令模式

首先考虑一种应用情况,某个方法需要完成某一个功能,这个功能的大部分功能已经确定了,但是有可能少量的步骤没法确定,必须等到执行这个方法才可以确定。
也就是说,我们写一个方法不仅要求参数可以变化,其中对参数的处理也需要变化,不是写在这个方法的代码逻辑中,是对于这个参数的处理也要传入到这个方法中,那么怎么做呢?命令模式。


不同于js可以在一个方法中参入一个代码块,java中不允许代码块单独存在,因此我们必须把该代码块封装成一个方法,在java中类是一等公民,方法也不能独立的存在,所以我们传入该方法的应该是一个对象,该对象通常是某个接口的匿名实现类的实例,这个接口我们称为命令接口。


具体代码如下:

<strong><span style="font-size:14px;">//定义一个接口  这个就是一会要传入下面方法的处理行为 这个接口叫做命令接口
interface Command{public void process(int[] target);
}public class ProcessArray {//这个方法里面的cmd就是一个代码块public void each(int[] target,Command cmd){cmd.process(target);}public static void main(String[] args) {ProcessArray processArray = new ProcessArray();int[] target = {1,2,3,4};//执行each方法,但是这里的第2个参数不是一个普通的参数,而是一个代码块processArray.each(target, new Command(){@Overridepublic void process(int[] target) {for(int a:target){System.out.println(a+"\n");}}});processArray.each(target, new Command() {@Overridepublic void process(int[] target) {int sum = 0;for(int a:target){sum+=a;}System.out.println("sum="+sum);}});}
}</span></strong>
<pre name="code" class="java"><pre name="code" class="java"><pre name="code" class="java"><strong><span style="font-size:14px;"><img src="https://img-blog.csdn.net/20141006131515651?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc5NDIzOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" /></span></strong>
<strong><span style="font-size:14px;"><img src="https://img-blog.csdn.net/20141006131623480?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc5NDIzOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" style="font-family: Arial, Helvetica, sans-serif;" alt="" /></span></strong>




转载于:https://www.cnblogs.com/LinkinPark/p/5233189.html

linkin大话设计模式--命令模式相关推荐

  1. linkin大话设计模式--常用模式总结

    linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter( ...

  2. linkin大话设计模式--桥接模式

    linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...

  3. linkin大话设计模式--模板方法模式

    linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...

  4. 大话设计模式—命令模式

    命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式.请求以命令的形式包裹在对象中,并传给调用对象.调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该 ...

  5. linkin大话设计模式--代理模式

    代理模式是一种应用非常广泛的设计模式,当客户端代码需要调用某个对象的时候,客户端并不关心是否可以准确的得到这个对象,他只要一个能够提供该功能的对象而已,此时我们就可以返回该对象的代理.总而言之,客户端 ...

  6. linkin大话设计模式--简单工厂

    linkin大话设计模式--工厂方法 什么是工厂方法:将多个类对象交给工厂来生成的设计被称为简单工厂模式,个人认为主要是为了实现解耦,在代码重构的时候会很重要. 代码如下: public class ...

  7. Python设计模式-命令模式

    Python设计模式-命令模式 代码基于3.5.2,代码如下; #coding:utf-8 #命令模式class barbecuer():def bakeButton(self):print(&quo ...

  8. 设计模式 命令模式 实例_根据您的命令-命令设计模式

    设计模式 命令模式 实例 命令设计模式是一种广为人知的设计模式,属于行为设计模式("四人帮"的一部分). 顾名思义,它与应用程序中的动作和事件有关. 问题陈述: 假设有一个网页将在 ...

  9. C语言设计模式——命令模式

    C语言设计模式--命令模式 好处:让代码清晰明了,容易添加和删除,易维护. 哪些地方会用到命令模式?(列出几个常见的例子) 1.按键处理,每个按键按下得到一个索引(指的就是命令),一个按键对应一个处理 ...

  10. C语言实现设计模式—命令模式

    文章目录 C语言设计模式--命令模式 传统的实现方式如下:(伪代码) 命令模式优化 UML 用例说明 实现流程 command.h command.c main 总结 C语言设计模式--命令模式 好处 ...

最新文章

  1. 《机器人操作系统ROS原理与应用》——1.1 宏观
  2. Bash脚本获取自身完整路径的可靠方法
  3. [转]12款最佳Linux命令行终端工具
  4. 每日求一录~20170704
  5. iis管理常用命令 创建IIS站点 应用应用程序 及虚拟目录
  6. 本地方法(JNI)——数值参数与返回值
  7. java ee cdi_Java EE CDI程序化依赖关系消歧示例–注入点检查
  8. 蒂法html5游戏,《最终幻想7:重制版》大量新截图:蒂法招式/支线任务
  9. leetcode - 646. 最长数对链
  10. 归纳(四):树链剖分
  11. 四.因子图优化学习---对因子图优化的粗浅理解
  12. 嵌入式Linux系统编程学习之十二守护进程
  13. linux运维零基础学习,没有基础怎么学习Linux运维?Linux学习
  14. 素数筛【埃筛,欧拉筛(线性筛)】
  15. 【Java项目-飞翔的小鸟】附源码
  16. 计算机桌面背景显示方式有几种,win7更改自己电脑的桌面背景几种方法介绍 Windows7系统更改桌面背景的方法图文教...
  17. Template.js
  18. 整合rocketmq/stream-rocketmq启动报错channel.AbstractMessageChannel问题
  19. 【UE4 C++】实现发出伤害与接收伤害
  20. 华为手机无线投屏到win10笔记本电脑

热门文章

  1. ic卡读卡器软件_读卡器
  2. CODING Pages 服务全面升级,更快更稳更可靠!
  3. sony笔记本触摸板角落轻敲功能
  4. 修改linux的防火墙
  5. ARM介绍1:发展史
  6. 借助Squid代理服务器,建立灵活的访问控制系统
  7. Linux下的shell编程(二)BY 四喜三顺
  8. HTTP GET请求URL中IP被异常替换的问题
  9. jQuery学习整理 (3) 使用jQuery操作元素的属性与样式
  10. MySQL 和 MySQL Workbench图形化安装教程