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

    package com.bdqn.memento;
    /**
     * 源发器类
     * @author OU
     *
     */
    public class Emp {
      private String ename;
      private int age;
      private double salary;
     
      //进行备忘操作,并返回备忘录对象
      public EmpMemento memento(){
          return new EmpMemento(this);
      }
      
      //进行数据恢复,恢复成制定备忘录对象的值
      public void recovery(EmpMemento mmt){
          this.ename=mmt.getEname();
          this.age=mmt.getAge();
          this.salary=mmt.getSalary();
      }
      
      
      
      
    public Emp() {
    }
    public Emp(String ename, int age, double salary) {
        super();
        this.ename = ename;
        this.age = age;
        this.salary = salary;
    }
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    
    @Override
    public String toString() {
        return "Emp [ename=" + ename + ", age=" + age + ", salary=" + salary + "]";
    }
    }
    emp
    package com.bdqn.memento;
    
    public class EmpMemento {
          private String ename;
          private int age;
          private double salary;
        
          public EmpMemento(Emp e) {
           this.ename=e.getEname();
           this.age=e.getAge();
           this.salary=e.getSalary();
        }
    
        public String getEname() {
            return ename;
        }
    
        public void setEname(String ename) {
            this.ename = ename;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public double getSalary() {
            return salary;
        }
    
        public void setSalary(double salary) {
            this.salary = salary;
        }
          
          
          
          
          
          
          
    }
    empmemento
    package com.bdqn.memento;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 负责人  类
     * 
     * 负责管理备忘录对象
     * 
     * @author OU
     *
     */
    public class CareTaker {
       private EmpMemento empMemento;
      
      //可以保存很多备份的点 private List<EmpMemento> list=new ArrayList<EmpMemento>();
       
       
    public EmpMemento getEmpMemento() {
        return empMemento;
    }
    
    public void setEmpMemento(EmpMemento empMemento) {
        this.empMemento = empMemento;
    }
       
    }
    caretaker
    package com.bdqn.memento;
    
    public class Client {
    public static void main(String[] args) {
          CareTaker taker=new CareTaker();
          Emp emp=new Emp("周无极",18,900);
          System.out.println("第一次打印对象"+emp);
          taker.setEmpMemento(emp.memento());//备份一次
          emp.setAge(38);
          emp.setEname("小欧");
          emp.setSalary(1000);
          System.out.println("第二次打印对象"+emp);
          emp.recovery(taker.getEmpMemento());
          System.out.println("第三次打印对象"+emp);
    } 
    }
    client
  • 相关阅读:
    接口的理解
    Application.DoEvents()笔记
    c#的DateTime.Now函数详解---来源(笨鸟先飞)
    怎么判断字符串a的内容包含字符串b的内容
    c#下怎么判断一个字符串是否可以转换为double类型
    .net中TreeView使用方法小结(2)
    .net中TreeView使用方法小结(1)
    TT企业微信社群辅助,企业微信社群辅助工具,允许批量添加好友,自动同意添加请求,自动回复消息
    TokenMismatchException Laravel
    实现Nginx Upload 模块 功能上传文件。
  • 原文地址:https://www.cnblogs.com/ou-pc/p/7523602.html
Copyright © 2011-2022 走看看