Some objects manage a large number of items. If those items are complex objects themselves, such as subclasses of Base or Widget, the memory consumed by such a collection can take your application down. However, when you have a large number of items, you are rarely going to actually deal with all of those items at once; you don’t need them to be active all the time. This is when the Flyweight pattern comes in handy. The name doesn’t mean much to me, I prefer to think of it as a Sliding Window kind of thing, where you slide a small window cut in a piece of paper over the data so that you actually see a little bit of it at a time.