设计模式系列之--忘备录模式
忘备录模式
这种类型的设计模式属于行为型模式,它他解决了方法的合理调用
忘备录模式比较简单 就是存档
这种模式就是在不同时间赋值对象并储存 但是若储存的对象是原来对象 那么调用回退方法势必会造成类的泄露(对类内部过多关心 不符合迪米特法则) 可以新建一个类只储存需要回退的信息 并用集合封装这些信息即可
既然是复制对象 可以配合原型模式使用
以一个人年龄为例
public class Man {private String age;public String getAge() {return age;}public void setAge(String age) {this.age = age;}public AgeMemo saveAge(){return new AgeMemo(getAge());}public void AgeRollBack(AgeMemo memo){this.age = memo.getStatue();}@Overridepublic String toString() {return "Man{" +"age='" + age + '\'' +'}';}
}
忘备录类
public class AgeMemo {private String statue;public AgeMemo(String age) {statue = age;}public String getStatue() {return statue;}
}
忘备录集合类
public class MemoList {private List<AgeMemo> list;public MemoList(){list = new ArrayList<>();}public void addAgeMemo(AgeMemo ageMemo){list.add(ageMemo);}public AgeMemo getAgeMemo(int index){return list.get(index);}}
设计模式系列之--忘备录模式相关推荐
- 访问者模式的java语言_Java 设计模式系列(二三)访问者模式(Vistor)
Java 设计模式系列(二三)访问者模式(Vistor) 访问者模式是对象的行为模式.访问者模式的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要修改的话,接受这个操作的数据结构则可以 ...
- 设计模式系列之「工厂方法模式」
"玛尼玛尼哄~~~",一个手持螺旋丸的鸣人出现了. "哦哈哟锅炸一马屎~~~",一个仙人模式的鸣人出现了. "死密码撒~~~",使用变身术的 ...
- 常用设计模式系列(四)—建造者模式
第一节 前言 "山不在高,有仙则名.水不在深,有龙则灵.斯是陋室,惟吾德馨.苔痕上阶绿,草色入帘青.谈笑有鸿儒,往来无白丁.可以调素琴,阅金经.无丝竹之乱耳,无案牍之劳形.南阳诸葛庐,西蜀子 ...
- 设计模式系列:搞懂组合模式,单对象与组合对象对外统一接口
组合模式的定义:又叫作整体-部分(Part-Whole)模式,通过将单个对象(叶节点)和组合对象用相同的接口表示,使客户端对单个对象和组合对象的访问具有一致性.它是一种将对象组合成树状的层次结构的模式 ...
- java 类爆炸_设计模式系列·类爆炸之 Bridge 模式
迷之微笑 经过 C 哥的精心指导,消息中心终于上线!代码运行了半个月,稳健无 bug . 王小二托着下腮,看着代码,一抹迷之微笑随之闪现^_^.作为一名有追求的码农,此时的快乐或许只有自己能懂. 消息 ...
- 设计模式系列漫谈之五 - 迭代器模式
故事 小美是小雪最好的朋友.有一天, 小美问小雪:"小雪,怎么你的手机短信这么多啊,是不是谈恋爱了?",小雪笑了一下,说:"还没呢",小雪停顿了一下,&q ...
- 【java设计模式系列】3. 抽象工厂模式(Abstract Factory)
假设现在有一个车辆制造工厂,它生产两种车,A类车和B类车,每类车有其各自的车门和轮子,这就需要不同的车间来做,A类车的车间有生产车门的工作,有生产轮子的工作,B类车的车间有生产车门的工作,有生产轮子的 ...
- 【设计模式系列】5.装饰器模式和适配器模式
目录 一.装饰器模式 二.适配器模式 1.类适配器 2.对象适配器 3.适配器模式的优缺点 一.装饰器模式 特点: 在不改变一个对象本身功能的基础上给对象增加新的功能,即功能增强: 如Java IO中 ...
- 设计模式系列:搞懂原型模式,你也会分身
原型(Prototype)模式的定义:用一个已经存在的对象实例作为原型,通过复制该原型对象来创建一个和原型对象相同或相似的新对象.属于建造型模式. 原型模式的结构:原型模式主要包含3种角色. 抽象原型 ...
最新文章
- 数字图像处理:(4)二阶微分在数字图像处理中的应用
- Spring源码分析【8】-分布式环境SpringSecurity保持用户会话
- 网站服务器c盘在哪找,云服务器c盘在哪儿
- 犹豫了许久,还是写个年总结记录一下吧
- 1.18.2.9.查询优化、Blink planner、解释表
- Nginx server_name正则表达式匹配配置
- 《道德经》程序员版第五章
- php cli 编程,php-cli下编程如何分层架构、面向对象、统一入口文件?
- 保存 laravel model 而不更新 timestamps 的方法
- 是Dubbo不香了吗?阿里为啥又搞一套Spring Cloud Alibaba?
- 国服服务器_伊丁天堂国服|服务器类型建议收集
- WCF 服务中元数据的地址问题
- 显示器不能全屏及开机慢解决方案
- 如何免费复制百度文库上的文字
- openresty性能调优
- uniapp push推送服务使用指南
- 常见720P和1080P的分辨率倒底是多少?
- TCC(TinyC)编译器汉化(中文编译器、汉语编程)之四:语法分析上
- excel 错位插入_excel表格错位怎么解决?excel数据错位
- Ubuntu在线安装NFS服务