轻松掌握Java备忘录模式
定义:保存一个对象的某个状态,以便在适当的时候恢复对象
特点:
1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。
2、实现了信息的封装,使得用户不需要关心状态的保存细节。
企业级应用和常用框架中的应用:常见文本编辑器使用了该模式
实例:
注意:该实例中只有撤销操作,没有向前还原操作
/**
*目标对象:将要被备忘的对象
*/
classWord{
privateStringcontent;
privateStringimage;
privateStringtable;
publicWord(Stringcontent,Stringimage,Stringtable){
super();
this.content=content;
this.image=image;
this.table=table;
}
publicWordMementomemento(){
returnnewWordMemento(this);
}
publicvoidrecovery(WordMementomemento){
this.content=memento.getContent();
this.image=memento.getImage();
this.table=memento.getTable();
}
publicStringgetContent(){
returncontent;
}
publicvoidsetContent(Stringcontent){
this.content=content;
}
publicStringgetImage(){
returnimage;
}
publicvoidsetImage(Stringimage){
this.image=image;
}
publicStringgetTable(){
returntable;
}
publicvoidsetTable(Stringtable){
this.table=table;
}
}
/**
*备忘录对象
*/
classWordMemento{
privateStringcontent;
privateStringimage;
privateStringtable;
publicWordMemento(Wordword){
this.content=word.getContent();
this.image=word.getImage();
this.table=word.getTable();
}
publicStringgetContent(){
returncontent;
}
publicvoidsetContent(Stringcontent){
this.content=content;
}
publicStringgetImage(){
returnimage;
}
publicvoidsetImage(Stringimage){
this.image=image;
}
publicStringgetTable(){
returntable;
}
publicvoidsetTable(Stringtable){
this.table=table;
}
}
/**
*负责人对象:负责记录备忘录对象
*/
classCareTaker{
privateList<WordMemento>list=newArrayList<>();
privateintindex=0;
publicvoidsetMemento(WordMementomemento){
list.add(memento);
this.index=list.size();
}
publicWordMementogetWordMemento(){
if(index==0){
System.out.println("没有可还原的内容");
returnnull;
}
WordMementomemento=list.get(index-1);
list.remove(index-1);
index--;
returnmemento;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。