每日总结
备忘录模式
改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayList等集合数据结构实现)。
package shiyan20;
public class Client {
public static void main(String a[]) {
UserInfoDTO user = new UserInfoDTO();
taker c = new taker();
int index = 0;
user.setAccount("李四");
user.setPassword("a150023");
user.setTelNo("13050236597");
System.out.println("状态1:");
user.show();
c.setmento(user.saveMemento());
index++;
user.setPassword("18723467657");
user.setTelNo("131001111795");
System.out.println("状态2:");
user.show();
c.setmento(user.saveMemento());
index++;
user.setPassword("15002391004");
user.setTelNo("13100555510");
System.out.println("状态3:");
user.show();
for (int i = index - 1; i >= 0; i--) {
int j = i + 1;
user.restoreMemento(c.getmento(i));
System.out.println("返回状态:" + j);
user.show();
}
}
}
package shiyan20;
public class mento {
private String account;
private String password;
private String telNo;
public mento()
{
}
public mento(String account,String password,String telNo)
{
this.account=account;
this.password=password;
this.telNo=telNo;
}
public String getAccount()
{
return account;
}
public void setAccount(String account)
{
this.account=account;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password=password;
}
public String getTelNo()
{
return telNo;
}
public void setTelNo(String telNo)
{
this.telNo=telNo;
}
}
package shiyan20;
import java.util.ArrayList;
public class taker {
private mento memento;
private ArrayList mementolist = new ArrayList();
public mento getmento(int i) {
return (mento)mementolist.get(i);
}
public void setmento(mento memento) {
mementolist.add(memento);
}
}
package shiyan20;
public class UserInfoDTO {
private String account;
private String password;
private String telNo;
public String getAccount()
{
return account;
}
public void setAccount(String account)
{
this.account=account;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password=password;
}
public String getTelNo()
{
return telNo;
}
public void setTelNo(String telNo)
{
this.telNo=telNo;
}
public mento saveMemento()
{
return new mento(account,password,telNo);
}
public void restoreMemento(mento memento)
{
this.account=memento.getAccount();
this.password=memento.getPassword();
this.telNo=memento.getTelNo();
}
public void show()
{
System.out.println("Account:" + this.account);
System.out.println("Password:" + this.password);
System.out.println("TelNo:" + this.telNo);
}
}