Featured image of post 设计模式-FlyWeight享元模式

设计模式-FlyWeight享元模式

背景

大量创建对象的场景,会耗费大量的资源,使用享元模式能共享一些内部的状态。

定义

运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。

实现

  • 定义一个享元的interface
  • 定义一个享元的工厂

适用场景

  • 系统有大量相似对象
  • 需要缓冲池的场景

优缺点

优点

  • 能够大大减少内存中对象的数量,内存中只保存一份相同或相似的对象,从而可以节约系统资源,提高系统性能。
  • 享元模式的外部状态相对独立,而且不会影响其内部状态,从而使得享元对象可以在不同的环境中被共享。

缺点

  • 享元模式使得系统更加复杂,需要分离出内部状态和外部状态,这使得程序的逻辑复杂化。
  • 为了使对象可以共享,享元模式需要将享元对象的状态外部化,而读取外部状态使得运行时间变长。
Owner Rainbowly
Total [] user views [] site views [] page views
Built with Hugo
主题 StackJimmy 设计