Jexi开发 (14) 应用Command模式

原创 2004年08月11日 20:44:00

Command模式用于封装用户操作再合适不过了!定义Command接口:

public interface Command {
    boolean execute();
    void unexecute();
    String toString();
}

toString()方法返回命令描述,可以在工具栏的Undo/Redo中提示用户。

单态类CommandManager用于创建、执行和撤销命令:

Command cmd = new DeleteCommand(...);
if(cmd.execute()) {
    addToCommandList(cmd); // add to undo list
}

如果execute()返回成功,表示命令执行成功,就将此执行过的命令放到List中,将来某个时候可以通过unexecute()撤销该命令实现Undo功能,这需要每个命令在执行前先保存相关数据以便在将来恢复。

为了简便我们尚未实现unexecute(),定义的命令如下:

InsertCommand:插入一个字符。
DeleteCommand:删除一个字符或选中文字。
SplitCommand:用户按Enter相当于把当前段落分成两部分。
FormatCommand:格式化选中文字。

以上命令已经可以实现基本的编辑功能,至于其它命令如Copy,Paste等完全可以以后再添加,因为用户操作被一一封装,因此将来扩展极其容易。

最新界面:

一个Command模式的应用例子

我曾经写过一个小软件,故事是这样的:我们公司有一些设备在外面运行,有一天我接到一个任务,要求我编写一个算法对系统进行控制,改善系统的性能。根据大家的讨论很快制订了算法,我也很快编码完毕。但问题来了...
  • chenjiazhou
  • chenjiazhou
  • 2005-08-24 20:55:00
  • 1206

设计模式-command模式

定义命令模式   命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。命令对象将动作和接收者包进对象中。 应用场景   在面向对象的软件设计中...
  • u010786109
  • u010786109
  • 2015-05-19 10:23:21
  • 964

command模式的讨论

第一次学习command模式时根本无法理解,经过仔细的分析,终于有了对command模式的一些认识。...
  • u011453312
  • u011453312
  • 2014-05-22 23:02:51
  • 677

设计模式-----COMMAND模式

COMMAND模式是最简单,最优雅的设计模式之一。COMMAND模式的使用范围非常宽广。 COMMAND模式通过对命令的封装接触了系统的逻辑互联关系和实际连接的设备之间的耦合。简单的说就是COMMA...
  • u013812682
  • u013812682
  • 2016-11-28 16:44:37
  • 608

Jexi开发 (13) 实现编辑功能

今天把Caret重新设计了一遍,用一个Position表示Caret的位置:public final class Position {??? private int pageIndex;??? pri...
  • asklxf
  • asklxf
  • 2004-08-05 22:33:00
  • 3671

Command模式详解--设计模式(19)

Memento模式来源:       Command模式通过将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类中(Receiver)中,从而实现调用...
  • fanyun_01
  • fanyun_01
  • 2016-07-06 08:58:20
  • 2084

设计模式介绍之三:命令模式(command)

命令(模式)的结构很简单,但对于消除代码间的耦合却有着重要的影响。
  • foruok
  • foruok
  • 2014-01-09 23:03:16
  • 6587

设计模式 —— 命令模式(Command Pattern)

命令模式(Command Pattern)概念: 概述:在软件设计中,我们经常会遇到某些对象发送请求,然后某些对象接受请求后执行,但发送请求的对象可能并不知道接受请求的对象是谁,执行的是什么动作。...
  • wwh578867817
  • wwh578867817
  • 2016-05-29 18:34:53
  • 2575

Java设计模式之Command在Android中的应用

1.概念:其实刚开始我也不是很理解这一模式。后面看到一些文章谈到Command模式的许多代码都是针对图形界面,它实际就是菜单命令。把这句话照搬到Android中,会发现我们经常做的一些如对点击事件的监...
  • huang_xiao_yu
  • huang_xiao_yu
  • 2015-11-01 03:10:08
  • 359
收藏助手
不良信息举报
您举报文章:Jexi开发 (14) 应用Command模式
举报原因:
原因补充:

(最多只允许输入30个字)