Technology-设计模式-蝇量模式

本文介绍了GoF中的蝇量模式。

模式推演

当需要非常多的同类对象时:

在游戏里面,经常需要渲染非常多的对象,例如树,一个场景可能有非常多的树:

Technology-DesignPattern-Flyweight-Request

如果每棵树新建一个对象,那么成千上万的树对象会占用大量的内存空间,导致游戏变卡顿,需要优化。

优化内存

优化的思路为:由于我们只是要渲染树,可以只创建一个数对象,然后利用这个树对象进行重复的渲染,而不是创建非常多的树对象。

Technology-DesignPattern-Flyweight-Class

定义

蝇量模式(Flyweight Pattern):让某个类的一个实例能用于提供很多“虚拟实例”。

用途:

  • 当一个类有很多的实例,而这些实例能被同一个方法控制时,我们就可以使用蝇量模式。

优点:

  • 减少运行时对象实例的个数,节省内存;
  • 将许多“虚拟”对象的状态集中管理。

缺点:

  • 单个的逻辑实例将无法用户独立而不同的行为。