06.结构型模式2
模式的描述 动机 Flyweight不能对它所运行的场景做出任何假设,这里的关键概念是内部状态和外部状态之间的区别。 内部状态存储于flyweight中,它包含了独立于flyweight场景的信息,使得可以被共享。 外部状态取决于Flyweight的场景,并根据场景而变化,不可共享。 用户对象负责在必要的时候将外部状态传递给Flyweight。 逻辑上,文档中的给定字符每次出现都有一个对象与其对应,如下图所示。 然而,物理上每个字符共享一个flyweight对象,而这个对象出现在文档结构中的不同地方。 字符代码是flyweight的内部状态;它的位置、字体等是外部状态。 模式的描述 动机 这些对象的类结构如下图所示。 Glyph是图形对象的抽象类,其中有些对象可能是flyweight,基于外部状态的那些操作将外部状态作为参量传递给flyweight。 内部状态 外部状态(位置、字体等) 可以使用Flyweight模式的情况 Flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用它。 当以下情况都成立时使用该模式: 一个应用程序使用了大量的对象。 由于使用大量的对象,造成很大的存储开销。 对象的大多数状态都可变为外部状态。 如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象。 应用程序不依赖于对象标识。 模式的结构 外部状态 内部状态 Flyweigh
您可能关注的文档
最近下载
- 封面新闻笔试真题及答案2025.doc VIP
- 人教版三年级下册数学全册新质教学课件(配2026年春改版教材).pptx
- 10倍福模块介绍及使用kl3403电力测量.pdf VIP
- 精品解析:山东济南市历下区济南第一中学2025-2026学年高二4月阶段测试英语试题(原卷版).docx VIP
- 北京理工大学超星尔雅学习通“会计学”《审计学》网课试题附答案卷4.docx VIP
- 北京理工大学超星尔雅学习通“会计学”《审计学》网课试题附答案卷3.docx VIP
- 湖面漂浮物打捞湖面垃圾打捞及运输方案.docx VIP
- 北京理工大学超星尔雅学习通“会计学”《审计学》网课试题附答案卷2.docx VIP
- 北京理工大学超星尔雅学习通“会计学”《审计学》网课试题附答案卷1.docx VIP
- 北京理工大学超星尔雅学习通“会计学”《审计学》网课答卷带答案卷5.docx VIP
原创力文档

文档评论(0)