linkin大话设计模式--命令模式
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大话设计模式--命令模式相关推荐
- linkin大话设计模式--常用模式总结
linkin大话设计模式--常用模式总结 一,常用设计模式定义 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. Adapter( ...
- linkin大话设计模式--桥接模式
linkin大话设计模式--桥接模式 桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿.我们 ...
- linkin大话设计模式--模板方法模式
linkin大话设计模式--模板方法模式 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不 ...
- 大话设计模式—命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式.请求以命令的形式包裹在对象中,并传给调用对象.调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该 ...
- linkin大话设计模式--代理模式
代理模式是一种应用非常广泛的设计模式,当客户端代码需要调用某个对象的时候,客户端并不关心是否可以准确的得到这个对象,他只要一个能够提供该功能的对象而已,此时我们就可以返回该对象的代理.总而言之,客户端 ...
- linkin大话设计模式--简单工厂
linkin大话设计模式--工厂方法 什么是工厂方法:将多个类对象交给工厂来生成的设计被称为简单工厂模式,个人认为主要是为了实现解耦,在代码重构的时候会很重要. 代码如下: public class ...
- Python设计模式-命令模式
Python设计模式-命令模式 代码基于3.5.2,代码如下; #coding:utf-8 #命令模式class barbecuer():def bakeButton(self):print(&quo ...
- 设计模式 命令模式 实例_根据您的命令-命令设计模式
设计模式 命令模式 实例 命令设计模式是一种广为人知的设计模式,属于行为设计模式("四人帮"的一部分). 顾名思义,它与应用程序中的动作和事件有关. 问题陈述: 假设有一个网页将在 ...
- C语言设计模式——命令模式
C语言设计模式--命令模式 好处:让代码清晰明了,容易添加和删除,易维护. 哪些地方会用到命令模式?(列出几个常见的例子) 1.按键处理,每个按键按下得到一个索引(指的就是命令),一个按键对应一个处理 ...
- C语言实现设计模式—命令模式
文章目录 C语言设计模式--命令模式 传统的实现方式如下:(伪代码) 命令模式优化 UML 用例说明 实现流程 command.h command.c main 总结 C语言设计模式--命令模式 好处 ...
最新文章
- 《机器人操作系统ROS原理与应用》——1.1 宏观
- Bash脚本获取自身完整路径的可靠方法
- [转]12款最佳Linux命令行终端工具
- 每日求一录~20170704
- iis管理常用命令 创建IIS站点 应用应用程序 及虚拟目录
- 本地方法(JNI)——数值参数与返回值
- java ee cdi_Java EE CDI程序化依赖关系消歧示例–注入点检查
- 蒂法html5游戏,《最终幻想7:重制版》大量新截图:蒂法招式/支线任务
- leetcode - 646. 最长数对链
- 归纳(四):树链剖分
- 四.因子图优化学习---对因子图优化的粗浅理解
- 嵌入式Linux系统编程学习之十二守护进程
- linux运维零基础学习,没有基础怎么学习Linux运维?Linux学习
- 素数筛【埃筛,欧拉筛(线性筛)】
- 【Java项目-飞翔的小鸟】附源码
- 计算机桌面背景显示方式有几种,win7更改自己电脑的桌面背景几种方法介绍 Windows7系统更改桌面背景的方法图文教...
- Template.js
- 整合rocketmq/stream-rocketmq启动报错channel.AbstractMessageChannel问题
- 【UE4 C++】实现发出伤害与接收伤害
- 华为手机无线投屏到win10笔记本电脑