言葉を理解します
コード設計支援ロールバックを変更した後(アンドゥ、リドゥ)
例えば
メモモードの基本的な操作元に戻すの原点から。友人の言葉ソフトウェア操作する経験を持っていた、あなたは基本的に元に戻す機能を使用している必要があります。たとえば、あなたが誤ってテキストのいくつかの段落を削除し、あなたがどのようにそれを行うにする必要があり、この時を想定?実際には、行うことは非常に簡単で、[失効]の一部をクリックして、すべて取得することができます。[元に戻す]ボタンが戻って行く機会を提供してくれます。
それが取り消されているので、我々はそれが対応するアンドゥを作成する必要がありますいくつかのアクションを実行しましたか?アンドゥ操作は、関連定義するようにしてもよいです。
typedef struct _Action
{
int type;
struct _Action* next;
void* pData;
void (*process)(void* pData);
}Action;
失効データ回復操作:データ構造は、2つの部分を定義します。この関数は関数を作成するために撤回しているはずですし、機能の回復があります。だから、経営者の失効がアクションを含めるべきであるとして、
typedef struct _Organizer
{
int number;
Action* pActionHead;
Action* (*create)();
void (*restore)(struct _Organizer* pOrganizer);
}Organizer;
本物は非常にシンプルになります場合は今作成と変更のプロセスのデータが対応する回復操作を持っていること、そして、元のデータを復元します。
void restore(struct _Organizer* pOrganizer)
{
Action* pHead;
assert(NULL != pOrganizer);
pHead = pOrganizer->pActionHead;
pHead->process(pHead->pData);
pOrganizer->pActionHead = pHead->next;
pOrganizer->number --;
free(pHead);
return;
}