WEB开发网
开发学院软件开发C语言 C#中使用单个对象的方法实现Undo/Redo 阅读

C#中使用单个对象的方法实现Undo/Redo

 2009-03-19 08:21:07 来源:WEB开发网   
核心提示: 如何应用单个对象表示变化的方法对任意应用程序Undo/Redo操作建模?单个对象表示变化的方法如何对任意应用程序Undo/Redo操作建模将在以下步骤中讨论:步骤1首先识别出你希望哪些操作能支持Undo/Redo,然后,C#中使用单个对象的方法实现Undo/Redo(2),识别出你将在哪个

如何应用单个对象表示变化的方法对任意应用程序Undo/Redo操作建模?

单个对象表示变化的方法如何对任意应用程序Undo/Redo操作建模将在以下步骤中讨论:

步骤1

首先识别出你希望哪些操作能支持Undo/Redo。然后,识别出你将在哪个容器下支持Undo/Redo以及你希望哪些对象支持Undo/Redo。

步骤2

为了进一步处理每个Undo/Redo操作,识别出需要被保存的属性。

步骤3

然后创建一个类(ChangeRepresentationObject),它包含支持全部操作Undo/Redo的所有属性。同样,准备一个动作类型enum,它将代表全部操作。这个动作类型enum是ChangeRepresentationObject类的一部分。

步骤4

然后创建一个名为UndoRedo的类,它包含两个类型的ChangeRepresentationObject栈。一个用于撤销操作,一个用于重做操作。该类将实现以下接口:

interface IUndoRedo
{
void Undo(int level);
void Redo(int level);
void InsertObjectforUndoRedo(ChangeRepresentationObject dataobject);
} 
 

步骤5

然后实现具体方法:Undo、 Redo、InsertObjectforUndoRedo。

在每个Undo操作中:

◆首先检查Undo栈是否为空。

◆如果不是,则弹出一个ChangeRepresentationObject并将其压入重做栈。

◆检查动作类型。

◆然后基于动作类型,利用ChangeRepresentationObject的属性完成撤销操作。

在每个Redo操作中,你几乎做与Undo同样的事。

◆首先检查Redo栈是否为空。

◆如果不是,弹出一个ChangeRepresentationObject,然后将其压入撤销栈。

◆检查动作类型。

上一页  1 2 3 4  下一页

Tags:使用 单个 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接