Super class of all factories of
classes. They are responsible for creating
classes that will save/load data for a given class.
Such factories are useful because we sometimes need to create
dynamically. For instance when
we serialize items as JSON, we need to create a new
class for every class of items
saved/loaded into cache. A unique
would not be able to strongly type the load/save method and
we would have to cast the result of both operations, leading to less robust and less convenient code.