享元模式
简介
享元模式(Flyweight Pattern)摒弃了在每个对象中存储所有数据的方式,通过共享多个对象的相同状态,使开发者可以在有限的内存容量中载入更多数据。
享元模式将对象状态划分为两部分:
- 内在状态(Intrinsic State): 这部分状态是对象共享的,不随环境改变而改变,可以存储在享元对象内部。
- 外在状态(Extrinsic State): 这部分状态是对象独有的,随环境改变而改变,不能共享,通常由客户端在使用享元对象时传递。
通过将内在状态存储在少量共享的享元对象中,并将外在状态在需要时传递,可以避免创建大量重复的对象,从而有效节省内存。享元模式通常与工厂模式结合使用,由工厂负责管理和提供共享的享元对象。