大三每日总结

软件设计 石家庄铁道大学信息学院

实验 20:备忘录模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解备忘录模式的动机,掌握该模式的结构;
2、能够利用备忘录模式解决实际问题。

[实验任务一]:多次撤销
改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayList等集合数据结构实现)。
实验要求:
1.提交源代码;
package BeiWang;

import java.util.ArrayList;

public class Caretaker {

private ArrayList<Memento> mementos = new ArrayList<Memento>();

public Memento getMemento(int i) {

return (Memento) mementos.get(i);

}


public void setMemento(Memento memento) {

mementos.add(memento);

}

}
package BeiWang;

public class Client {

public static void main(String a[]) {

UserInfoDTO user = new UserInfoDTO();

Caretaker taker = new Caretaker();

user.setAccount("刘某");

user.setPassword("20218888");

user.setTelNo("00000000000");

System.out.println("状态一:");

taker.setMemento(user.saveMemento());

user.show();

System.out.println("---------------------------");

user.setPassword("20216666");

user.setTelNo("00000000001");

System.out.println("状态二:");

user.show();

taker.setMemento(user.saveMemento());

System.out.println("---------------------------");

user.setPassword("20214444");

user.setTelNo("00000000002");

System.out.println("状态三:");

user.show();

System.out.println("---------------------------");

System.out.println("回到状态二");

user.restoreMemento(taker.getMemento(1));

user.show();

System.out.println("---------------------------");

System.out.println("回到状态一");

user.restoreMemento(taker.getMemento(0));

user.show();

System.out.println("---------------------------");

}

}
package BeiWang;

public class Memento {

private String account;

private String password;

private String telNo;

public Memento(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 BeiWang;

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 Memento saveMemento() {

return new Memento(account, password, telNo);

}

public void restoreMemento(Memento 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);

}

}

2. 注意编程规范。

 

posted @ 2023-11-13 19:36  摆烂达人  阅读(1)  评论(0编辑  收藏  举报