每日总结

备忘录模式

改进课堂上的用户信息操作撤销实例,使得系统可以实现多次撤销(可以使用HashMapArrayList等集合数据结构实现)。

 

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; >= 0; i--) {

 

int j = + 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);        

 

    }

 

}

 

 

 

posted @ 2021-10-15 15:35  一条快乐的小鲸鱼  阅读(85)  评论(0编辑  收藏  举报