Design Patterns - Flyweight
Use sharing to support large numbers of objects with fine-grain access to other objects, reducing the resources needed for the large amount of objects.
A shared object can be used in multiple context, and it’s used in many parts of the program, YOu can then create a shared object that represent the part that is in every object and surround that with an object that represents the context, so you could have many context objects pointing to the same shared object.
Notes References
20210408132546 Computer Science - Design patterns