备忘录模式

package tutor20;

import java.util.ArrayList;

public class Client {

    public static void main(String a[]){

        UserInfoDTO user=new UserInfoDTO();

        Caretaker taker = new Caretaker();

        user.setAccount("张三");

        user.setPassword("123456");

        user.setTelNo("123456");



        taker.setMemento(user.saveMemento());

        user.show();

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

        user.setPassword("111111");

        user.setTelNo("111111");



        user.show();

        taker.setMemento(user.saveMemento());

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

        user.setPassword("222222");

        user.setTelNo("222222");



        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("---------------------------");

    }

}
 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);

    }

}
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;

    }

}
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);

    }

}

 

posted @ 2021-11-18 17:42  {hunter}ZY  阅读(30)  评论(0编辑  收藏  举报