Originator.java
上传用户:hensond
上传日期:2021-12-27
资源大小:817k
文件大小:1k
源码类别:

软件工程

开发平台:

Java

  1. package com.company.section6;
  2. /**
  3.  * @author cbf4Life cbf4life@126.com
  4.  * I'm glad to share my knowledge with you all.
  5.  */
  6. public class Originator implements Cloneable{
  7. private Originator backup;
  8. //内部状态
  9. private String state = "";
  10. public String getState() {
  11. return state;
  12. }
  13. public void setState(String state) {
  14. this.state = state;
  15. }
  16. //创建一个备忘录
  17. public void createMemento(){
  18. this.backup = this.clone();
  19. }
  20. //恢复一个备忘录
  21. public void restoreMemento(){
  22. //在进行恢复前应该进行断言,防止空指针
  23. this.setState(this.backup.getState());
  24. }
  25. //克隆当前对象
  26. @Override
  27. protected Originator clone(){
  28. try {
  29. return (Originator)super.clone();
  30. } catch (CloneNotSupportedException e) {
  31. e.printStackTrace();
  32. }
  33. return null;
  34. }
  35. }