大佬教程收集整理的这篇文章主要介绍了java设计模式之备忘录,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
备忘录模式又叫快照模式,既在不改变原对象的情况下,保存一系列它的快照,可以实现备份、撤销等操作。
InputText就是原对象,SnapShot是他的快照,SnapShotHolder负责保存一系列快照
public class InputText { private StringBuilder text = new StringBuilder(); public Snapshot createSnapshot() { return new Snapshot(text.toString()); } public void append(String input) { text.append(input); } public void restoreSnapshot(Snapshot snapshot) { this.text.replace(0, this.text.length(), snapshot.getText()); } }
public class Snapshot { private String text; public Snapshot(String text) { this.text = text; } public String getText() { return this.text; } }
快照容器类
public class SnapshotHolder { private Stack<Snapshot> snapshots = new Stack<>(); public Snapshot popSnapshot() { return snapshots.pop(); } public void pushSnapshot(Snapshot snapshot){ snapshots.push(snapshot); } }
启动类
public class ApplicationMain { public static void main(String[] args) { InputText inputText = new InputText(); SnapshotHolder snapshotHolder = new SnapshotHolder(); ScAnner scAnner = new ScAnner(System.in); while (scAnner.hasNext()){ String input = scAnner.next(); if(input.equals(":list")){ System.out.println(inputText.toString()); }else if(input.equals(":undo")){ Snapshot snapshot = snapshotHolder.popSnapshot(); inputText.restoreSnapshot(snapshot); }else{ snapshotHolder.pushSnapshot(inputText.createSnapshot()); inputText.append(input); } } } }
输出:
以上是大佬教程为你收集整理的java设计模式之备忘录全部内容,希望文章能够帮你解决java设计模式之备忘录所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。