設計模式---備忘錄模式的簡單實現以及思路

前言:

(早上出門前知道今天有大雨,但是卻沒有帶,現在外面下着大雨,我都不知道咋回去o(╥﹏╥)o,哎自作自受)

   

有時候在使用軟件的時候可以進行撤回,即恢復原來的狀態,這就使用了備忘錄模式。就是將實體類對象複製一份交給專門管理的對象

目錄

一、代碼實現:

   一、類結構圖

   二、具體實現


 

一、代碼實現:

   一、類結構圖

   二、具體實現

  •    Emp:
    package Mementor;
    
    import java.util.Set;
    //實體類對象
    public class Emp {
      private  String name;
      private int age;
      public Emp(String name, int age, int salary) {
    	super();
    	this.name = name;
    	this.age = age;
    	this.salary = salary;
    }
    private int salary;
      
    	public Empmementor setEmp()
        {
        	return new Empmementor(this);
        }
        //進行數據恢復
        public void recovery(Empmementor empmementor)
        {
        	this.age=empmementor.getAge();
        	this.name=empmementor.getName();
        	this.salary=empmementor.getSalary();
        	
        }
      
      public String getName() {
    	return name;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public int getSalary() {
    	return salary;
    }
    public void setSalary(int salary) {
    	this.salary = salary;
    }
    
       
     
    }
    

     

  • Empmementor:
    package Mementor;
    //相當於複製類對象
    public class Empmementor {
      private String name;
       private int age;
       private int salary;
         public String getName() {
    	return name;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public int getAge() {
    	return age;
    }
    public void setAge(int age) {
    	this.age = age;
    }
    public int getSalary() {
    	return salary;
    }
    public void setSalary(int salary) {
    	this.salary = salary;
    }
    	Empmementor(Emp emp) {
    		// TODO 自動生成的構造函數存根
        	 this.name=emp.getName();
        	 this.age=emp.getAge();
        	 this.salary=emp.getSalary();
    	}
       
    }
    

     

  • Tacker:

    package Mementor;
    //管理存儲的對象
    public class Tacker {
      private  Empmementor empmementor;
    
    public Empmementor getEmpmementor() {
    	return empmementor;
    }
    
    public void setEmpmementor(Empmementor empmementor) {
    	this.empmementor = empmementor;
    }
          
    }
    

     

調用類:Client:

package Mementor;

import javax.sql.rowset.CachedRowSet;

public class Client {
 public static void main(String[] args) {
	Tacker tacker=new Tacker();
	Emp emp=new Emp("張揚",18,900); 
	System.out.println("第一次打印相關的內容"+emp.getName()+"----"+emp.getAge()+"-----"+emp.getSalary());
	tacker.setEmpmementor(emp.setEmp());
	emp.setAge(100);
	emp.setSalary(9000);
	System.out.println("第二次打印相關的內容"+emp.getName()+"----"+emp.getAge()+"-----"+emp.getSalary());
	emp.recovery(tacker.getEmpmementor());
	//還原相關的信息
	System.out.println("第三次打印相關的內容(恢復之後的數據)"+emp.getName()+"----"+emp.getAge()+"-----"+emp.getSalary());
	
}
}

實現結果:

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章