- 浏览: 100844 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
LLeye:
能不能发份完整的代码给我 865807345@qq.com
jdbcTemplate 例子 -
zhanglu1236789:
不错不错
java 泛型详解 -
happyrabbit:
彻底明白了!
java 泛型详解 -
yanqingluo:
好文章
java 泛型详解 -
moment52:
liutsi 写道moment52 写道LZ我看到一段代码如下 ...
java 泛型详解
命令模式把一个请求或者操作封装到一个对象中。他把发出命令的责任和执行命令的责任分割开,委派给不同的对象
每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的
/** * 请求者角色 */ public class Keypad { private Command playCmd; private Command rewindCmd; private Command stopCmd; public Keypad(Command playCmd, Command rewindCmd, Command stopCmd) { this.playCmd = playCmd; this.rewindCmd = rewindCmd; this.stopCmd = stopCmd; } /** * 行动方法 */ public void play() { playCmd.execute(); } /** * 行动方法 */ public void stop() { stopCmd.execute(); } /** * 行动方法 */ public void rewind() { rewindCmd.execute(); } }
/** * 抽象命令角色 */ public interface Command { /**执行方法*/ public void execute(); }
/** * 具体命令角色 */ public class PlayCommand implements Command { private AudioPlayer audioPlayer; public PlayCommand(AudioPlayer audioPlayer) { this.audioPlayer = audioPlayer; } public void execute() { audioPlayer.play(); } }
/** * 具体命令角色 */ public class RewindCommand implements Command { private AudioPlayer audioPlayer; public RewindCommand(AudioPlayer audioPlayer) { this.audioPlayer = audioPlayer; } public void execute() { audioPlayer.rewind(); } }
/** * 具体命令角色 */ public class StopCommand implements Command { private AudioPlayer audioPlayer; public StopCommand(AudioPlayer audioPlayer) { this.audioPlayer = audioPlayer; } public void execute() { audioPlayer.stop(); } }
/** * 接受者角色 */ public class AudioPlayer { /**行动方法*/ public void play() { System.out.println("Playing ... "); } /**行动方法*/ public void rewind() { System.out.println("Rewinding ... "); } /**行动方法*/ public void stop() { System.out.println("Stopped ... "); } }
public interface MacroCommand extends Command { /** * 执行方法 */ /** public void execute(); * 聚集管理方法,可以删除一个成员命令 */ public void remove(Command toRemove); /** * 聚集管理方法,可以添加一个成员命令 */ public void add(Command toAdd); }
import java.util.Vector; public class MacroAudioCommand implements MacroCommand { private Vector<Command> commandVector = new Vector<Command>(); public void add(Command toAdd) { commandVector.addElement(toAdd); } public void remove(Command toRemove) { commandVector.removeElement(toRemove); } public void execute() { System.out.println("Automated playback of stored commands..."); for (Command com : commandVector) { com.execute(); } System.out.println("Finished automated playback of stored commands."); } }
public class Client { public static void main(String[] args) { test2(); } public static void test1(){ AudioPlayer audioPlayer = new AudioPlayer(); Command playCommand = new PlayCommand(audioPlayer); Command rewindCommand = new RewindCommand(audioPlayer); Command stopCommand = new StopCommand(audioPlayer); Keypad keyPad = new Keypad(playCommand, rewindCommand, stopCommand); keyPad.play(); keyPad.rewind(); keyPad.stop(); keyPad.play(); keyPad.stop(); } public static void test2(){ AudioPlayer audioPlayer = new AudioPlayer(); Command playCommand = new PlayCommand(audioPlayer); Command rewindCommand = new RewindCommand(audioPlayer); Command stopCommand = new StopCommand(audioPlayer); MacroCommand macro = new MacroAudioCommand(); macro.add(playCommand); macro.add(rewindCommand); macro.add(stopCommand); macro.add(playCommand); macro.add(stopCommand); macro.execute(); } }
发表评论
-
调停者模式
2011-02-17 11:42 1695看了很久感觉理解不太好! 调停者模式包装了一系列对 ... -
访问者模式
2011-02-16 11:14 5582访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一 ... -
状态设计模式
2011-02-15 11:28 1232状态模式允许一个对象 ... -
备忘录设计模式
2011-02-14 14:57 1070备忘录(Memento)模式又称标记(Token)模式。GO ... -
责任链模式
2011-01-28 10:16 1116责任链模式里,很多对象由每一个对象对其下家的引用二连接起来形成 ... -
迭代子模式
2011-01-27 19:18 1586迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表 ... -
观察者模式
2011-01-26 17:15 1176观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听 ... -
模板方法模式
2011-01-26 09:33 968一个抽象类,将部分逻辑以具体方法以及构造子的形式实现,然后声明 ... -
策略模式
2011-01-25 17:29 1205策略模式用意是针对一组算法,将每一个算法封装到具有共同接口的独 ... -
不变模式
2011-01-25 15:05 1128一个对象的状态在对象创建之后就不再变化,这就是不变模式 不变 ... -
桥模式
2011-01-24 16:09 1003将抽象化与实现化脱耦,使得二者可以独立变化。该模式的目标是通过 ... -
门面模式
2011-01-22 11:15 1012外部系统与一个子系统的通信必须通过一个统一的门面对象进行。门面 ... -
装饰器模式
2011-01-22 10:40 1074public interface ISource { ... -
转:安全合成模式
2011-01-22 10:32 1080合成模式把部分和整体 ... -
单纯享元模式
2011-01-15 18:18 1018享元模式以共享的方式高效的支持大量的细粒度对象 享元对象能做 ... -
缺省适配器
2011-01-15 15:50 952缺省适配器为一个接口提供缺省实现,这样子类可以从这个缺省的实现 ... -
对象适配器(object adapter)
2011-01-15 15:11 1249把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不 ... -
原始模型模式
2011-01-15 11:31 962通过一个原型对象来指明所要创建的对象的类型,然后用复制这个原型 ... -
建造设计模式
2010-12-28 16:02 830Director /** * 导 ... -
抽象工厂设计模式
2010-12-27 12:17 906/** * 园丁 */ public i ...
相关推荐
命令模式是一种行为设计模式,它的主要目的是将请求者与接收者解耦,使得请求的发起者无需知道哪个对象会执行这个请求,同时也让系统更容易扩展。这种模式在软件工程中广泛应用,特别是在事件驱动和分布式系统中。 ...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式广泛应用在各种场景中,以提高代码的灵活...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在iOS开发中,命令模式尤其适用于处理事件驱动的编程场景,因为...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在软件工程中,这种模式常用于解耦发出命令的对象和执行命令的...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在C#编程中,命令模式常用于实现解耦发送者和接收者,提高代码的...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求以便支持可撤消的操作。在这个简单的计算器例子中,我们将探讨如何使用命令模式来实现加法、...
在“记事本 使用了策略模式和命令模式”这个主题中,我们将深入探讨这两种设计模式以及它们如何应用于记事本软件的实现。 首先,让我们了解策略模式。策略模式是一种行为设计模式,它允许在运行时选择算法或策略。...
命令模式是一种行为设计模式,它将请求封装为一个对象,使得可以使用不同的请求、队列或者日志请求,也可以支持可撤销的操作。在C++中,命令模式的应用可以帮助我们更好地组织代码,提高代码的可扩展性和可维护性。...
命令模式是一种行为设计模式,它将请求封装为一个对象,使得你可以参数化不同的请求,对请求排队或记录请求日志,以及支持可撤销的操作。C#作为.NET框架的主要编程语言,非常适合应用这种模式。本篇文章将深入探讨...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java中实现命令模式,我们可以按照以下步骤进行: 1. **定义...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在C#编程中,命令模式常用于实现解耦,使得调用者与执行者之间...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java中,命令模式的应用非常广泛,尤其在需要解耦调用者和接收...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本示例中,我们将深入探讨命令模式的核心概念和实现方式。 ...
命令模式是一种设计模式,它将请求封装为一个对象,从而使我们能使用不同的请求、队列或者日志请求,以及支持可撤销的操作。在本代码demo中,我们将深入探讨这一模式的实现及其应用。 命令模式的核心思想是解耦调用...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在本文中,我们将深入探讨命令模式的原理、结构和实际应用,并...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java中,命令模式的应用非常广泛,尤其在需要解耦调用者和执行...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java编程中,命令模式的应用广泛且实用。 命令模式的核心是将...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在C++中,我们可以利用面向对象的特性来有效地实现这个模式。 ...
命令模式是一种行为设计模式,它将请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。在Java中实现命令模式,我们可以创建一个接口或者抽象类作为命令...