【GOF23设计模式】_备忘录模式_多点备忘_事务操作_回滚数据底层架构JAVA253
来源:互联网 发布:淘宝客qq群拉人 编辑:程序博客网 时间:2024/06/10 05:03
来源:http://www.bjsxt.com/
一、S03E253_01【GOF23设计模式】_备忘录模式、多点备忘、事务操作、回滚数据底层架构
package com.test.memento;/** * 源发器类 */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(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; }}
package com.test.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; }}
package com.test.memento;import java.util.ArrayList;/** * 负责人类 */public class CareTaker { private EmpMemento memento;// private List<EmpMemento> list = new ArrayList<EmpMemento>(); public EmpMemento getMemento() { return memento; } public void setMemento(EmpMemento memento) { this.memento = memento; }}
package com.test.memento;public class Client { public static void main(String[] args) { CareTaker careTaker = new CareTaker(); Emp emp = new Emp("小高", 18, 900); System.out.println("第一次打印对象:"+emp.getEname()+"--" +emp.getAge()+"--"+emp.getSalary()); careTaker.setMemento(emp.memento());//备忘一次 emp.setAge(38); emp.setEname("小搞"); emp.setSalary(9000); System.out.println("第二次打印对象:"+emp.getEname()+"--" +emp.getAge()+"--"+emp.getSalary()); emp.recovery(careTaker.getMemento());//恢复到备忘录对象保存的状态 System.out.println("第三次打印对象:"+emp.getEname()+"--" +emp.getAge()+"--"+emp.getSalary()); }}
控制台输出:第一次打印对象:小高--18--900.0第二次打印对象:小搞--38--9000.0第三次打印对象:小高--18--900.0
0 0
- 【GOF23设计模式】_备忘录模式_多点备忘_事务操作_回滚数据底层架构JAVA253
- 【GOF23设计模式】_命令模式_数据库事务机制底层架构实现_撤销和回复JAVA246
- 【GOF23设计模式】_组合模式_树状结构_杀毒软件架构_JUnite底层架构JAVA239
- 【GOF23设计模式】_装饰模式_IO流底层架构_装饰和桥接模式的区别JAVA240
- 设计模式_备忘录模式
- 设计模式_备忘录模式
- 设计模式 _备忘录模式
- (GOF23设计模式)_装饰模式
- (GOF23设计模式)_组合模式
- 【GOF23设计模式】_观察者模式
- 【GOF23设计模式】_单例模式
- (GOF23设计模式)_代理模式_动态代理
- (GOF23设计模式)_代理模式_静态代理
- 00_设计模式备忘录
- (GOF23设计模式)_单例模式_应用场景_饿汉式_懒汉式
- 【GOF23设计模式】_模板方法模式_钩子函数_方法回调_好莱坞原则JAVA249
- 【GOF23设计模式】_策略模式_CRM中报价策略_GUI编程中布局管理器底层架构JAVA248
- 【GOF23设计模式】_外观模式_公司注册流程_迪米特法则JAVA241
- 自定义ProgressBar的进度色彩
- 使用Maven和Jersey Framework开发REST风格Web Service
- 安卓开发:服务的更多技巧--1.使用前台服务
- Eclipse做安卓的时候,button按钮把那个textview文本挡住了
- 文章标题 div 居中的三种方法
- 【GOF23设计模式】_备忘录模式_多点备忘_事务操作_回滚数据底层架构JAVA253
- 反编译apk
- Java中的多线程编程(一)
- 各种排序算法代码
- C/C++中static和extern小结
- 前端框架设计理念
- 问题:在MyEclipse中导入项目后遇到 building workspace has encountered problem
- Zxing二维码扫描(Android开源库)
- vc2010 “CString”: 未声明的标识符