1. 意图
享元模式,简单理解为:共享元素。是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。
享元对象具有不可变性,其状态不能被修改。
2. 结构
3. 应用场景
-
仅在程序必须支持大量对象且没有足够的内存容量时使用享元模式。
-
应用该模式所获的收益大小取决于使用它的方式和情景。 它在下列情况中最有效:
- 程序需要生成数量巨大的相似对象
- 这将耗尽目标设备的所有内存
- 对象中包含可抽取且能在多个对象间共享的重复状态。
4. 优缺点
5. 例子:
java.lang.Integer#valueOf(int) (以及 Boolean、 Byte、 Character、 Short、 Long 和 BigDecimal)