<h3>Flyweight</h3>

<p>When you need to use a lot of small, fast objects, the time it takes to create them can be excessive. An alternative is reuse objects so that you avoid the creation overhead. However, if the objects contain data that is specific to each use, then in order to reuse them, the data must be stored outside of the objects and supplied to them when they are called. The other major issue is how to know when you already have an object that you can reuse versus when you have to create a new one