《研磨设计模式》读书笔记之:备忘录模式、享元模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。

备忘录模式(Memento):

几点解释:

  1. 备忘录模式的目的在于在不破坏对象封装性的前提下,保存对象的部分或者全部的数据到对象之外,用于在需要的时候恢复对象到某一个备忘录的状态。
  2. 实现方式为 创建一个私有的内部类用于保存对象的数据,这个内部类会实现一个 窄接口(没有任何方法,标记用),外部调用 创建备忘录的方法时,只会得到 窄接口类型的引用,对于对象内部的数据无法访问和操作,这样就保证了封装性。
  3. 若是要保存整个对象的数据,则可以结合原型模式,使用克隆的方式来创建一个数据完全相同的新对象。此时内部类只需要保存新对象的一个引用即可。
  4. 保存是手段,恢复是目的。狭义的备忘录模式强调不破坏对象的封装性。

享元模式(Flyweight):

几点解释:

  1. 享元模式的本质在于将不变的部分分离出来并共享。实现功能的关键在于 通过享元工厂来获取相应的数据。
  2. 其实可以将享元工厂看作是单例的一种实现方式,先查询Map,没有的情况下创建保存并返回(需要做好并发控制)。
  3. 策略模式、状态模式都容易产生很多的细粒度的对象,这些对象往往是无状态的,可以结合享元模式,减少不必要的内存浪费。
内容简介 · · · · · · 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。 《研磨设计模式》在内容上深入、技术上实用、和实际开发结合程度很高,书中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高效学生深入学习设计模式的参考读物! 作者简介 · · · · · · 陈臣:十年Java/JavaEE开发经验,高级系统架构师,功力深厚,技术精湛,精通Java/JavaEE相关技术和多种开源框架,尤其擅长系统分析和架构设计。从事过专业的中间件研发,包括基于组件的Web页面框架、基于WFMC的工作流中间件、类似于Hibernate的ORM框架等等;参与或主持了多个中大型的企业级应用项目,拥有多年项目经理、技术部经理的管理经验。个人博客:http://www.javass.cn/javapeixunxxyd/index.html 王斌:从事Java/JavaEE开发五年,系统架构师,精通Ejb、Struts、Spring、Hibernate、iBatis等框架技术,擅长设计模式和Eclipse插件开发。作为架构小组骨干,参与了国旅电子商务平台、南王酒庄等多个项目的开发,开发并维护有constance4j、myxstream、SimpleMapping等多个公司内部开源框架,深得多个项目组好评。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值