Homonym: flyweight (Boxing)
The "flyweight" pattern is a design pattern used in software development to minimize memory usage by sharing common data among multiple objects. Instead of creating separate instances for each object, the flyweight pattern allows for the reuse of existing objects, which can significantly reduce the overall memory footprint of an application.
In this pattern, the shared data is called the "intrinsic state," while the unique data specific to each object is known as the "extrinsic state." By separating these states, developers can efficiently manage resources, especially in scenarios where many similar objects are needed, such as in graphics rendering or game development involving sprites or characters.