- 解决方案类,类名:Solution
package com.MemorandumPattern;
public class Solution {
//类数量
public int ClassCount;
//代码大小
public int CodeSize;
//项目数量
public int ProductCount;
//保存当前对象状态
public Memorandum SaveStateToMemorandum()
{
return new Memorandum(ClassCount,CodeSize,ProductCount);
}
//恢复状态
public void RecoveryStateToMemorandum(Memorandum memorandum)
{
ClassCount = memorandum.ClassCount;
CodeSize = memorandum.CodeSize;
ProductCount = memorandum.ProductCount;
}
}
- 备忘录类,类名:Memorandum
package com.MemorandumPattern;
public class Memorandum {
//构造函数
public Memorandum(int classCount,int codeSize,int productCount)
{
ClassCount = classCount;
CodeSize = codeSize;
ProductCount = productCount;
}
//类数量
public int ClassCount;
//代码大小
public int CodeSize;
//项目数量
public int ProductCount;
}
- Git管理类,类名:Git
package com.MemorandumPattern;
import java.util.ArrayList;
import java.util.List;
public class Git {
private List list = new ArrayList<>();
public void Add(Memorandum memorandum)
{
list.add(memorandum);
}
public Memorandum GetMemorandum(int index)
{
return list.get(index);
}
}
- 入口函数类
Git git = new Git();
Solution solution = new Solution();
solution.ClassCount =100;
solution.CodeSize=120;
solution.ProductCount =1 ;
//记录当前对象的状态数据
git.Add(solution.SaveStateToMemorandum()) ;
Memorandum memorandum =git.GetMemorandum(0);
solution.ClassCount =1000;
solution.CodeSize=1200;
solution.ProductCount =10 ;
Memorandum memorandum1 = solution.SaveStateToMemorandum();
System.out.println("-------旧对象数据:"+memorandum.ClassCount+"---"+memorandum.CodeSize+"-----"+memorandum.ProductCount);
System.out.println("-------新对象数据:"+memorandum1.ClassCount+"---"+memorandum1.CodeSize+"-----"+memorandum1.ProductCount);
//恢复状态
solution.RecoveryStateToMemorandum(memorandum);
System.out.println("-------恢复状态:"+solution.ClassCount+"---"+solution.CodeSize+"-----"+solution.ProductCount);