设计模式享元模式在String和Java包装类中应用有哪些特点?

2026-05-19 18:330阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2911个文字,预计阅读时间需要12分钟。

设计模式享元模式在String和Java包装类中应用有哪些特点?

享元(Flyweight)模式:顾名思义就是被共享的单元。意指复用对象,节约内存,提高访问效率。例如,在红白机游戏中,背景的花、草、树木等对象,实际上是可以多次复用的,从而节省内存,提升性能。

享元(Flyweight)模式:顾名思义就是被共享的单元。意图是复用对象,节省内存,提升系统的访问效率。比如在红白机冒险岛游戏中的背景花、草、树木等对象,实际上是可以多次被不同场景所复用共享,也是为什么以前的游戏占用那么小的内存,却让我们感觉地图很大的原因。

一、享元模式介绍 1.1 享元模式的定义

享元模式的定义是:运用共享技术来有效地支持大量细粒度对象的复用。

这里就提到了两个要求:细粒度和共享对象。而正是因为要求细粒度,那么势必会造成对象数量过多而且对象性质相近。所以我们可以将对象分为:内部状态和外部状态,内部状态指对象共享出来的信息,存储在享元信息内部,不会随着环境改变;外部状态指对象得以依赖的标记,会随着环境改变,不可以共享。根据是否共享,可以分成两种模式:

  • 单纯享元模式:该模式中所有具体享元类都是可以共享,不存在非共享具体享元类
  • 复合享元模式:将单纯享元对象使用组合模式加以组合,可以形成复合享元对象

实际上享元模式的本质就是缓存共享对象,降低内存消耗

阅读全文

本文共计2911个文字,预计阅读时间需要12分钟。

设计模式享元模式在String和Java包装类中应用有哪些特点?

享元(Flyweight)模式:顾名思义就是被共享的单元。意指复用对象,节约内存,提高访问效率。例如,在红白机游戏中,背景的花、草、树木等对象,实际上是可以多次复用的,从而节省内存,提升性能。

享元(Flyweight)模式:顾名思义就是被共享的单元。意图是复用对象,节省内存,提升系统的访问效率。比如在红白机冒险岛游戏中的背景花、草、树木等对象,实际上是可以多次被不同场景所复用共享,也是为什么以前的游戏占用那么小的内存,却让我们感觉地图很大的原因。

一、享元模式介绍 1.1 享元模式的定义

享元模式的定义是:运用共享技术来有效地支持大量细粒度对象的复用。

这里就提到了两个要求:细粒度和共享对象。而正是因为要求细粒度,那么势必会造成对象数量过多而且对象性质相近。所以我们可以将对象分为:内部状态和外部状态,内部状态指对象共享出来的信息,存储在享元信息内部,不会随着环境改变;外部状态指对象得以依赖的标记,会随着环境改变,不可以共享。根据是否共享,可以分成两种模式:

  • 单纯享元模式:该模式中所有具体享元类都是可以共享,不存在非共享具体享元类
  • 复合享元模式:将单纯享元对象使用组合模式加以组合,可以形成复合享元对象

实际上享元模式的本质就是缓存共享对象,降低内存消耗

阅读全文