| 意图 | 共享内部状态、分离外部状态 |
|---|---|
| 前提 | 对象量大且大部分状态可复用 |
| 配套 | 工厂管理共享池 + 弱引用/上限控制 |
形态示意
形态示意
class TreeType { // 内部状态:种类、贴图
void draw(int x, int y); // 外部状态逐次传入
}
// 森林中数万棵树共享少量 TreeType共享大量细粒度对象的不可变部分(内部状态),把可变上下文(外部状态)留在调用方:降低内存与构造开销;经典场景是字符排版、地图瓦片、缓存池。
| 意图 | 共享内部状态、分离外部状态 |
|---|---|
| 前提 | 对象量大且大部分状态可复用 |
| 配套 | 工厂管理共享池 + 弱引用/上限控制 |
class TreeType { // 内部状态:种类、贴图
void draw(int x, int y); // 外部状态逐次传入
}
// 森林中数万棵树共享少量 TreeType