Originator:发起人也就是需要保存的类,负责创建一个Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Originator的那些内部状态。 Memento:负责存储OriginatZ http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcrbUz/O1xMTasr/XtMyso6yyor/Jt8DWuU9yaWdpbmF0b3LS1M3itcTG5Mv7ttTP87fDzsqxuM38wrxNZW1lbnRvoaOxuM38wrzT0MG9uPa907/ao6xDYXJldGFrZXLWu8Tcv7S1vbG4zfzCvLXE1a2907/ao6zL/Na7xNy9q7G4zfzCvLSrtd24+Mbky/y21M/zoaNPcmlnaW5hdG9yxNy5u7+0tb3Su7j2v+2907/ao6zUytDty/y3w87Kt7W72LW9z8jHsNe0zKzL+dDotcTL+dPQyv2+3aGjCiAgICAgIENhcmV0YWtlcqO6udzA7dXfo6y4utTwsaO05rrDTWVtZW50b6OssrvE3LbUsbjN/MK8tcTE2sjdvfjQ0LLZ1/e78rzssumhowqjqGNsb25ltcS3vcq90rK/ydLUyrXP1rG4zfyjrLWrysfV4tH5tcS7sM7Sw8fP4LWx09q21MnPsuPTptPDv6q3xcHLT3JpZ2luYXRvcrXEyKuyv73Tv9qjrNXi1NrT0NCpyrG68srHsru6z8rKtcSjrLb4x9KjrGNsb25lu+G4tNbGyKuyv8TayN2jrLb4srvE3LbUsr+31r340NCxuM38oaPB7c3io6zKudPDsbjN/MK8xKPKvb/J0tSw0bi01NO1xLbUz/PE2rK/0MXPorbUxuTL+7bUz/PGwbHOxvDAtKGjo6kKPGJyPgoKPHN0cm9uZz7KytPDs6G+sKO6PC9zdHJvbmc+CjxzdHJvbmc+TWVtZW50bzwvc3Ryb25nPsSjyr2xyL3PysrTw9PauabE3LHIvc+4tNTTtcSjrLWr0OjSqs6su6S78rzHwrzK9NDUwPrKt7XEwOCjrLvy1d/Q6NKqsaO05rXEyvTQ1Na7ysfW2rbgyvTQ1NbQtcTSu9Chsr+31sqxo6xPcmlnaW5hdG9yv8nS1Lj5vt2xo7TmtcRNZW1lbnRv0MXPoru51K21vcew0rvXtMysoaMKPGJyPgoKtPrC66O6Ci8vTWVtZW50by5oCgo8cHJlIGNsYXNzPQ=="brush:java;">#include "stdafx.h" #include
// MementoPattern.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Memento.h"
int _tmain(int argc, _TCHAR* argv[])
{
Originator originator("Angel", 5);
Caretaker* caretaker = new Caretaker();
caretaker->SetMemento(originator.CreateMemento());
originator.Show();
originator.SetAge(6);
originator.Show();
originator.RecoveryMemento(caretaker->GetMemento());
originator.Show();
getchar();
return 0;
}