结构型模式之享元FLYWEIGHT
来源:互联网 发布:品牌网络宣传 编辑:程序博客网 时间:2024/04/27 17:30
一、意图
运用共享技术有效地支持大量细粒度的对象
二、图解
对于一个文档编辑器,如果我们对每个文字都建立个对象将会消耗大量的内存。由于英文字母只有26个,如果我们只建立26个对象,而文档编辑器内的文字都都是共享的这些对象。如下图:
但是Flyweight对象应该只存自己的内部状态,如:字母只存储字符代码,而不存储它的大小,字体等外部状态。外部信息由用户提供,Flyweight自己根据信息绘画自己。
三、结构
四、其他
- 共享Flyweight越多,存储节约越多,如果外部状态是通过计算出来而非存储,将会更一步节约存储,但会增加计算时间。
- Flyweight对象是共享的,用户最好不要直接对它进行实例化,可以使用工厂模式实例化。
- 共享还意味着某种形式的引用计数和垃圾回收,当一个 Flyweight不再使用时,可以
回收它的存储空间。
0 0
- 结构型模式之享元FLYWEIGHT
- 设计模式--结构型模式之六-Flyweight享元
- 结构型模式之享元模式(Flyweight)
- 结构型模式之享元模式(FlyWeight)
- 设计模式(结构型)之享元模式(Flyweight Pattern)
- 结构型模式之享元模式(FlyWeight)
- 结构模式之Flyweight(享元)
- 结构型模式-Flyweight ( 享元模式 )
- 结构型模式:Flyweight(享元)
- 【结构型模式】flyweight(享元)
- 结构型模式-享元(flyweight)
- 享元模式Flyweight(结构型)
- 结构型-享元模式(Flyweight)
- 十一、结构模式之享元(Flyweight)模式
- 结构模式之享元模式(FLYWEIGHT)
- Java设计模式之结构型模式-享元模式(Flyweight)
- 设计模式(11)-结构型-享元模式(Flyweight)
- [设计模式-结构型]享元模式(Flyweight )
- the left operand of * is a garbage value
- github使用问题
- css实现多行文字与图片垂直水平居中
- 解决web.xml 报错The content of element type "web-app" must match
- 分布式与集群的区别
- 结构型模式之享元FLYWEIGHT
- Android Studio增加assets目录、raw目录
- POJ 2299 Ultra-QuickSort (树状数组)
- 自动化测试知识点笔记
- 开题报告会
- 将本地项目上传到oschina核心笔记
- Bioperl的安装(一)
- 配置java轻量级定时器及其逻辑,task:scheduled-tasks
- 使用Hibernate完成对象持久化