设计模式---备忘录模式的简单实现以及思路

前言:

(早上出门前知道今天有大雨,但是却没有带,现在外面下着大雨,我都不知道咋回去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());
	
}
}

实现结果:

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值