Cache provider for save Object to predefined factory and load Object from
cacheMap or factory.
For save Object you can use save[T](key: Cache.key, value: T) to save Object
which type is T to factory.
For load Object you can use load[T](key: Cache.key), if the Object exist in
cacheMap load it from cacheMap, if not load it from factory.
Use the cache provider you need to configuration the size of cacheMap,
remove strategy, serializer and unSerializer.
Define the file-based case factory.
Define the file-based case factory. Supply method to set file directory, and
handle write and load action for CacheProvider.