zoukankan      html  css  js  c++  java
  • 设计模式之备忘录模式

    定义:在不破坏封装性的前提下中。捕获一个对象的内部状态。并在该对象之外保存这个状态。

    这样以后就能够将该对象恢复到原先保存的状态。

    结构图:


    演示样例代码:

    public class Memento {
    
    	private String state;
    
    	public Memento(String state) {
    
    		this.state = state;
    	}
    
    	public String getState() {
    		
    		return state;
    	}
    }
    public class Originator {
    
    	private String state;
    
    	public String getState() {
    		return state;
    	}
    
    	public void setState(String state) {
    		this.state = state;
    	}
    	
    	public void setState(Memento memento) {
    		this.state = memento.getState();
    	}
    	
    	public Memento createMemento() {
    		
    		return new Memento(state);
    	}
    	
    	public void show() {
    		System.out.println("State=" + state);
    	}
    }
    public class Caretaker {
    
    	private Memento memento;
    
    	public Memento getMemento() {
    		return memento;
    	}
    
    	public void setMemento(Memento memento) {
    		this.memento = memento;
    	}
    	
    }
    
    client代码:

    public class Client {
    
    	public static void main(String[] args) {
    		
    		Originator o = new Originator();
    		o.setState("on");
    		o.show();
    		
    		Caretaker c = new Caretaker();
    		c.setMemento(o.createMemento());
    		
    		o.setState("off");
    		o.show();
    		
    		o.setState(c.getMemento());
    		o.show();
    		
    	}
    }
    
    执行结果例如以下:

    State=on
    State=off
    State=on



  • 相关阅读:
    Java统计程序运行时间(转)
    有符号定点数的表示方法
    移位运算符
    索引
    self与super的区别(转)
    Java经典题型(未完成)
    ObjectiveC 的 self 和 super 详解
    边界计算与不对称边界
    各种排序总结
    运算符的优先级
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7086565.html
Copyright © 2011-2022 走看看