享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享尽可能多的相似对象来减少内存使用,提高性能。这种模式下,对象的共享可以是细粒度的,这些对象提供了重复使用的可能性。
享元模式适用于以下场景:
示例:
考虑文字处理软件中的字符处理。每个字符都有其字形(glyph)和格式(如字体、大小、颜色等)。字形在不同的文本中是可以共享的,而格式是特定于文本上下文的。
// 享元对象
class Character {
private final char value;
private final String font;