设计模式享元模式在String和Java包装类中应用有哪些特点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2911个文字,预计阅读时间需要12分钟。
享元(Flyweight)模式:顾名思义就是被共享的单元。意指复用对象,节约内存,提高访问效率。例如,在红白机游戏中,背景的花、草、树木等对象,实际上是可以多次复用的,从而节省内存,提升性能。
享元(Flyweight)模式:顾名思义就是被共享的单元。意图是复用对象,节省内存,提升系统的访问效率。比如在红白机冒险岛游戏中的背景花、草、树木等对象,实际上是可以多次被不同场景所复用共享,也是为什么以前的游戏占用那么小的内存,却让我们感觉地图很大的原因。
一、享元模式介绍 1.1 享元模式的定义享元模式的定义是:运用共享技术来有效地支持大量细粒度对象的复用。
这里就提到了两个要求:细粒度和共享对象。而正是因为要求细粒度,那么势必会造成对象数量过多而且对象性质相近。所以我们可以将对象分为:内部状态和外部状态,内部状态指对象共享出来的信息,存储在享元信息内部,不会随着环境改变;外部状态指对象得以依赖的标记,会随着环境改变,不可以共享。根据是否共享,可以分成两种模式:
- 单纯享元模式:该模式中所有具体享元类都是可以共享,不存在非共享具体享元类
- 复合享元模式:将单纯享元对象使用组合模式加以组合,可以形成复合享元对象
实际上享元模式的本质就是缓存共享对象,降低内存消耗。
本文共计2911个文字,预计阅读时间需要12分钟。
享元(Flyweight)模式:顾名思义就是被共享的单元。意指复用对象,节约内存,提高访问效率。例如,在红白机游戏中,背景的花、草、树木等对象,实际上是可以多次复用的,从而节省内存,提升性能。
享元(Flyweight)模式:顾名思义就是被共享的单元。意图是复用对象,节省内存,提升系统的访问效率。比如在红白机冒险岛游戏中的背景花、草、树木等对象,实际上是可以多次被不同场景所复用共享,也是为什么以前的游戏占用那么小的内存,却让我们感觉地图很大的原因。
一、享元模式介绍 1.1 享元模式的定义享元模式的定义是:运用共享技术来有效地支持大量细粒度对象的复用。
这里就提到了两个要求:细粒度和共享对象。而正是因为要求细粒度,那么势必会造成对象数量过多而且对象性质相近。所以我们可以将对象分为:内部状态和外部状态,内部状态指对象共享出来的信息,存储在享元信息内部,不会随着环境改变;外部状态指对象得以依赖的标记,会随着环境改变,不可以共享。根据是否共享,可以分成两种模式:
- 单纯享元模式:该模式中所有具体享元类都是可以共享,不存在非共享具体享元类
- 复合享元模式:将单纯享元对象使用组合模式加以组合,可以形成复合享元对象
实际上享元模式的本质就是缓存共享对象,降低内存消耗。

