一种撤销和/或重做的实现方法和装置的制造方法

文档序号:8257914阅读:207来源:国知局
一种撤销和/或重做的实现方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,特别是涉及一种撤销和/或重做的实现方法和装 置。
【背景技术】
[0002] 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的 学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。 在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机界面、办公 套件、操作系统、编译器、数据库、游戏等。同时,各个行业几乎都有计算机软件的应用,如工 业、农业、银行、航空、政府部门等。这些应用促进了经济和社会的发展,也提高了工作和生 活效率
[0003] 软件框架(Softwareframework),通常指的是为了实现某个业界标准或完成特定 基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功 能的软件产品。软件框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个 设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间 协作的方法,它为构件复用提供了上下文(Context)关系。
[0004] 在很多情况下,程序开发人员和使用者都期望开发出的程序具有UND0/RED0(撤销 /重做)的功能。撤销功能用于撤销之前的操作,重做功能用于恢复之前的操作。无论是何 种计算机语言环境之下,对于撤销/重做功能都有明确的需求。
[0005] 然而,在现有技术中,需要在软件开发阶段,针对每个模块、每个步骤和每个函数 分别设计撤销/重做功能,而这会占用大量的设计时间,并且显著增加了开发成本。

【发明内容】

[0006] 本发明实施方式提出一种撤销和/或重做的实现方法,以降低设计时间。
[0007] 本发明实施方式提出一种撤销和/或重做的实现装置,以降低设计时间。
[0008] 本发明实施方式的技术方案如下:
[0009] -种撤销和/或重做的实现方法,该方法包括:
[0010] 建立包含撤销队列和/或重做队列的容器,该撤销队列和/或重做队列用于容纳 一个或多个模板类的对象,该模板类包含与待撤销和/或待重做操作相关的函数指针的联 合(UNION)以及相关函数调用信息;
[0011] 基于用户执行的操作创建相应的所述模板类的对象,并将所创建的模板类的对象 放入所述容器中的相应撤销队列和/或重做队列;
[0012] 当用户触发撤销和/或重做动作时,从所述撤销队列和/或重做队列中弹出相应 的所述模板类的对象,并利用所述模板类对象中的调用信息执行所述模板类对象中的函数 指针所指的函数。
[0013] 所述函数调用信息包括函数调用参数和调用对象。
[0014] 所述模板类具有联合体声明和联合体变量定义,在该联合体声明中包含有所述与 撤销和/或重做操作相关的函数指针的列表。
[0015] 所述与撤销和/或重做操作相关的函数指针包括指向下列中的至少一个操作的 函数指针:
[0016] 添加现场设备图标;删除现场设备图标;移动现场设备图标;修改现场设备参数。
[0017] 所述撤销队列与重做队列具有相同的队列长度,而且所述撤销队列与重做队列共 享队列指针。
[0018] 放入所述撤销队列和重做队列中的所述模板类对象包含相同函数指针或相同函 数调用链。
[0019] 所述容器为标准模板库序列容器、标准模板库关联容器、非标准序列容器或非标 准关联容器。
[0020] 所述容器为C++语言标准模板库的容器、MFC容器类库的容器,或为自定义链表容 器。
[0021] 一种撤销和/或重做的实现装置,包括容器建立单元、对象创建单元和执行单元, 其中:
[0022] 容器建立单元,用于建立包含撤销队列和/或重做队列的容器,该撤销队列和/ 或重做队列用于容纳一个或多个模板类的对象,该模板类包含与待撤销和/或待重做操作 相关的函数指针的联合(UNION)以及相关函数调用信息;
[0023] 对象创建单元,用于基于用户执行的操作创建相应的所述模板类的对象,并将所 创建的模板类的对象放入所述容器中的相应撤销队列和/或重做队列;
[0024] 执行单元,用于当用户触发撤销和/或重做动作时,从所述撤销队列和/或重做队 列中弹出相应的所述模板类的对象,并利用所述模板类对象中的调用信息执行所述模板类 对象中的函数指针所指的函数。
[0025] 所述函数调用信息包括函数调用参数和调用对象。
[0026] 所述模板类具有联合体声明和联合体变量定义,在该联合体声明中包含有所述与 撤销和/或重做操作相关的函数指针的列表。
[0027] 所述与撤销和/或重做操作相关的函数指针包括指向下列中的至少一个操作的 函数指针:
[0028] 添加现场设备图标;删除现场设备图标;移动现场设备图标;修改现场设备参数。
[0029] 所述撤销队列与重做队列具有相同的队列长度,而且所述撤销队列与重做队列共 享队列指针。
[0030] 放入所述撤销队列和重做队列中的所述模板类对象包含相同函数指针或相同函 数调用链。
[0031] 所述容器为标准模板库序列容器、标准模板库关联容器、非标准序列容器或非标 准关联容器。
[0032] 所述容器为C++语言标准模板库的容器、MFC容器类库的容器,或为自定义链表容 器。
[0033] 从上述技术方案可以看出,在本发明实施方式中,建立包含撤销队列和/或重做 队列的容器,该撤销队列和/或重做队列用于容纳一个或多个模板类的对象,该模板类包 含与待撤销和/或待重做操作相关的函数指针的联合(UNION)以及相关函数调用信息;基 于用户执行的操作创建相应的所述模板类的对象,并将所创建的模板类的对象放入所述容 器中的相应撤销队列和/或重做队列;当用户触发撤销和/或重做动作时,从所述撤销队列 和/或重做队列中弹出相应的所述模板类的对象,并利用所述模板类对象中的调用信息执 行所述模板类对象中的函数指针所指的函数。由此可见,应用本发明实施方式之后,采用了 模板类作为撤销和/或重做的操作符,因此可以容纳各种类型的类,而无需针对每个模块、 每个步骤和每个函数设计撤销和/或重做功能,因此节约了设计时间。本发明实施方式并 不涉及各种数据操作,因此还可以适用于各种应用环境中。
[0034] 而且,由于采用了共用体声明和共用体变量定义属性,因此本发明实施方式占据 很少的内存,从而还提高了开发效率。
【附图说明】
[0035] 图1为根据本发明实施方式撤销和/或重做的实现方法流程图。
[0036] 图2为根据本发明实施方式撤销和/或重做的实现方法第一实例图。
[0037] 图3为根据本发明实施方式撤销和/或重做的实现方法第二实例图。
[0038] 图4为根据本发明实施方式撤销和/或重做的实现方法第三实例图。
[0039] 图5为根据本发明实施方式撤销和/或重做的实现方法第四实例图。
[0040] 图6为根据本发明实施方式撤销和/或重做的实现装置结构图。
【具体实施方式】
[0041] 为了使本发明的技术方案及优点更加清楚明白,以下结合附图及实施方式,对本 发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以阐
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1