轻松掌握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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。