Flyweight Pattern

Flyweight Pattern

Flyweight Pattern

Real-World Example

Example Implementation

Applicability

The Flyweight pattern's effectiveness depends heavily on how and where it's used. Apply the Flyweight pattern when all of the following are true:

  • An application uses a large number of objects.
  • Storage costs are high because of the sheer quantity of objects.
  • Most of the object states can be made extrinsic.
  • Many groups of objects may be replaced by relatively few shared objects once the extrinsic state is removed.
  • The application doesn't depend on object identity. Since flyweight objects may be shared, identity tests will return true for conceptually distinct objects.

Comparisons

 Click here to expand...

Facade Pattern vs Flyweight Pattern

  • Flyweight Pattern shows how to make lots of little objects
  • Facade Pattern shows how to make a single object represent an entire subsystem

Resources