欢迎光临散文网 会员登陆 & 注册

设计模式:享元模式

2021-04-22 23:49 作者:做架构师不做框架师  | 我要投稿

什么是享元模式?

享元模式(英文:Flyweight Pattern),运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。

一句话归纳

使用对象池来减少来减少创建重复的对象。

代码示例

在《蓝精灵》电影中邪恶的格格巫在笨笨引导下闯进精灵村庄,蓝精灵们在躲避格格巫时通过蓝月亮的旋窝被传送到了纽约中央公园内,在这里他们一方面要赶在格格巫和阿兹猫找到他们之前回到自己的蘑菇村庄,另一方面他们也要在纽约展开冒险。

适用性

以下我建议你考虑使用:

  • 系统中存在大量相似的对象时,减少资源的浪费;

  • 需要缓冲池的时候;

  • 在java语言中的 String的intern()方法就是使用该模式。

局限性

以下我建议你谨慎使用:

  • 为了使对象可以共享,需要将一些不能共享的状态外部化,这将增加程序的复杂性。

  • 享元模式是为了共享,有可能会出现线程安全问题。


写在最后

最后,好兄弟,记得点赞,关注,谢谢。


设计模式:享元模式的评论 (共 条)

分享到微博请遵守国家法律