备忘录模式-java

package u20;

public class Caretaker {
    private Memento memento;
    public Memento getMemento()
    {
        return memento;
    }
    public void setMemento(Memento memento)
    {
        this.memento=memento;
    }
}
package u20;

public class Client {
    public static void main(String[] args) {
    Originator originator=new Originator();
    Caretaker caretaker=new Caretaker();

    originator.setUname("贾亚赛");
    originator.setPassword("789987");
    originator.setSex("女");
    caretaker.setMemento(originator.createMemento());
    System.out.println("用户信息:");
    System.out.println(originator);

    originator.setUname("张三");
    originator.setPassword("159752");
    originator.setSex("男");
    System.out.println("\n------------------------------------------------\n");
    System.out.println("修改后的用户信息”");
    System.out.println(originator);

    System.out.println("\n------------------------------------------------\n");
    System.out.println("回复操作之前的状态:");
    originator.restoreMemento(caretaker.getMemento());
    System.out.println(originator);
    }
}
package u20;

public class Memento {
    private String uname;
    private String password;
    private String sex;
    public Memento(String uname, String password, String sex) {
        this.uname = uname;
        this.password = password;
        this.sex = sex;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}
package u20;

public class Originator {
    private String uname;
    private String password;
    private String sex;

    public Memento createMemento(){
        return new Memento(uname,password,sex);
    }
    
    public void restoreMemento(Memento m){
        this.uname=m.getUname();
        this.password=m.getPassword();
        this.sex=m.getSex();
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Originator{" +
                "uname='" + uname + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}

 

posted @ 2021-11-01 16:20  yasai  阅读(48)  评论(0编辑  收藏  举报