Fly Weight design pattern is focused on memory optimization. Its goal
is to reduce the size of objects and extract functionalities that
aren't vital to the object into sub-objects that would enable these
features based on needs only.
Reduce memory usage
in large objects
Reduce the size of
multiple used objects by extracting/reducing properties and methods