· 7 years ago · Apr 13, 2018, 06:50 PM
1package ru.intodayer.behavioral.memento;
2
3import java.util.List;
4
5public class PersonOriginator {
6 private String name;
7 private Integer age;
8 private List<String> girlFriendsNames;
9 private String secretKey = "67867687d@udyfu";
10
11 public PersonOriginator() {}
12
13 public String getName() {
14 return name;
15 }
16
17 public void setName(String name) {
18 this.name = name;
19 }
20
21 public Integer getAge() {
22 return age;
23 }
24
25 public void setAge(Integer age) {
26 this.age = age;
27 }
28
29 public List<String> getGirlFriendsNames() {
30 return girlFriendsNames;
31 }
32
33 public void setGirlFriendsNames(List<String> girlFriendsNames) {
34 this.girlFriendsNames = girlFriendsNames;
35 }
36
37 public Memento saveState() {
38 Memento memento = new Memento();
39 memento.setName(this.name);
40 memento.setAge(this.age);
41 memento.setGirlFriendsNames(this.girlFriendsNames);
42 memento.setSecretKey(this.secretKey);
43
44 return memento;
45 }
46
47 public void restoreState(Memento memento) {
48 this.name = memento.getName();
49 this.age = memento.getAge();
50 this.girlFriendsNames = memento.getGirlFriendsNames();
51 this.secretKey = memento.getSecretKey();
52 }
53
54 @Override
55 public String toString() {
56 return "PersonOriginator{" +
57 "name='" + name + '\'' +
58 ", age=" + age +
59 ", girlFriendsNames=" + girlFriendsNames +
60 '}';
61 }
62}
63
64
65package ru.intodayer.behavioral.memento;
66
67import java.util.List;
68
69public class Memento {
70 private String name;
71 private Integer age;
72 private List<String> girlFriendsNames;
73 private String secretKey;
74
75 public Memento() {}
76
77 String getName() {
78 return name;
79 }
80
81 void setName(String name) {
82 this.name = name;
83 }
84
85 Integer getAge() {
86 return age;
87 }
88
89 void setAge(Integer age) {
90 this.age = age;
91 }
92
93 List<String> getGirlFriendsNames() {
94 return girlFriendsNames;
95 }
96
97 void setGirlFriendsNames(List<String> girlFriendsNames) {
98 this.girlFriendsNames = girlFriendsNames;
99 }
100
101 String getSecretKey() {
102 return secretKey;
103 }
104
105 void setSecretKey(String secretKey) {
106 this.secretKey = secretKey;
107 }
108}
109
110
111=====================
112
113package ru.intodayer;
114
115import ru.intodayer.behavioral.memento.Memento;
116
117import java.util.ArrayList;
118import java.util.List;
119
120public class CareTaker {
121 private List<Memento> states;
122
123 public CareTaker() {
124 this.states = new ArrayList<>();
125 }
126
127 public Memento getMemento(Integer i) {
128 return states.get(i);
129 }
130
131 public void addMemento(Memento memento) {
132 this.states.add(memento);
133 }
134}