e2

滴滴侠,fai抖

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

 员工实体类(源发器类):

package memo_mode;

/**
 * 员工实体类(源发器类)
 */
public class Employee {
    
    private String name;
    private Integer age;
    private Double salary;

    
    /**
     * 进行备忘操作, 并返回备份(备忘录)对象
     */
    public EmployeeBackup backup(){
        return new EmployeeBackup(this);
    }
    
    
    /**
     * 进行数据恢复, 恢复成指定备份(备忘录)对象的值
     */
    public void recovery(EmployeeBackup aEmployeeBackup){
        this.name = aEmployeeBackup.getName();
        this.age = aEmployeeBackup.getAge();
        this.salary = aEmployeeBackup.getSalary();
    }
    
    
    public Employee(String name, Integer age, Double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }

}

 

员工备份类(备忘录类memento):

package memo_mode;

/**
 * 员工备份类(备忘录类memento)
 */
public class EmployeeBackup {

    private String name;
    private Integer age;
    private Double salary;
    
    public EmployeeBackup(Employee aEmployee) {
        this.name = aEmployee.getName();
        this.age = aEmployee.getAge();
        this.salary = aEmployee.getSalary();
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public Integer getAge() {
        return age;
    }
    
    public void setAge(Integer age) {
        this.age = age;
    }
    
    public Double getSalary() {
        return salary;
    }
    
    public void setSalary(Double salary) {
        this.salary = salary;
    }
    
}

 

负责人类:

package memo_mode;

import java.util.ArrayList;
import java.util.List;

/**
 * 负责人类
 * 负责管理备份(备忘录)对象
 */
public class Caretaker {

    private EmployeeBackup backup;

    //支持堆zai结构
    //private List<EmployeeBackup> list = new ArrayList<EmployeeBackup>();
    
    public EmployeeBackup getBackup() {
        return backup;
    }

    public void setBackup(EmployeeBackup backup) {
        this.backup = backup;
    }
    
}

 

测试代码:

package memo_mode;

public class Client {

    public static void main(String[] args) {
        Caretaker caretaker = new Caretaker();
        
        Employee employee = new Employee("zlp", new Integer(23), 3000D);
        System.out.println("第一次打印对象: " + employee.getName() + "---" + employee.getAge() + "---" + employee.getSalary());

        caretaker.setBackup(employee.backup());//备忘一次, 并由负责人类保存
        
        employee.setName("zzz");
        employee.setAge(new Integer(28));
        employee.setSalary(6000D);
        System.out.println("第二次打印对象: " + employee.getName() + "---" + employee.getAge() + "---" + employee.getSalary());

        employee.recovery(caretaker.getBackup());//从负责人类中取, 恢复到备忘录对象保存的状态
        System.out.println("第三次打印对象: " + employee.getName() + "---" + employee.getAge() + "---" + employee.getSalary());

    }
    
}

 

打印结果:

第一次打印对象: zlp---23---3000.0
第二次打印对象: zzz---28---6000.0
第三次打印对象: zlp---23---3000.0

 

 

谢谢声明出处!

转自: http://www.cnblogs.com/gscq073240/articles/7100381.html

 

posted on 2017-06-30 19:19  纯黑Se丶  阅读(142)  评论(0)    收藏  举报