The Flyweight Pattern
in JavaScript
When
• large numbers of similar objects are created,
causing performance problems.
Implementing the Flyweight Pattern
1. Remove all extrinsic data
2. Create a factory
3. Create a manager
(to store the extrinsic data)
1. Remove all extrinsic data
Intrinsic Data
Extrinsic Data
1. Remove all extrinsic data
2. Create a factory
Store into share object
3. Create a manager
Store into share object
Extrinsic Data
3. Create a manager
Managing extrinsic data
• Encapsulated in a Manager Class
• Use composite Pattern
– leaf nodes can all be flyweight objects!
Summary
• Benefits
– Improve performance
– Make a code more efficient
– Reduce page resources
• Drawbacks
– Harder to debug
• Manager/Factory/Flyweight object
– Maintenance
References
• [Link]
• Chapter 13, Pro JavaScript Design Patterns - Apress