package com.pattern.Memento; public class Origin { public String name; public String age; public Memento storeStatus(Origin o){ return new Memento(o); } public void backStatus(Memento m){ this.name = m.getName(); this.age = m.getAge(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } } package com.pattern.Memento; public class Memento { public String name; public String age; Memento(Origin o){ this.name = o.getName(); this.age = o.getAge(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public static void main(String[] args){ Origin o = new Origin(); o.setName("sam"); o.setAge("10"); Memento m = o.storeStatus(o); o.setName("tom"); o.setAge("20"); o.backStatus(m); System.out.println(o.getName()); System.out.println(o.getAge()); } }