Skip to content

wosika/flutter_cache_manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CacheManager

概述

CacheManager 是一个缓存管理器,内部持有一个 ICache 实现(默认为 SharedCache),并将外部调用转发给内部持有的 ICache 实现。

使用方法

  1. 首先调用 init() 进行初始化。可以通过传入 cache 参数指定自定义的 ICache 实现,如果为 null 则使用 SharedCache 默认实现。 实现这个接口的类可以有:
  • SharedPreferencesCache:使用 SharedPreferences 实现的缓存。
  • MemCache:使用内存实现的简单缓存。
  • DatabaseCache:使用数据库实现的缓存。
   CacheManager.instance.init();
   // 或者
   CacheManager.instance.init(cache: MyCache());
  1. 调用 getString()、putString()、getStringList()、putStringList() 进行缓存操作。这些调用会被转发到内部的 ICache 实现上。
   CacheManager.instance.putString("key", "value");
   CacheManager.instance.getString("key");
   CacheManager.instance.putStringList("list_key", ["a", "b", "c"]);
   CacheManager.instance.getStringList("list_key");
  1. 可以通过 CacheManager.instance 获取单例实例。 dart CacheManager.instance

设计思路

这个 CacheManager 类实现了缓存的集中管理与维护,外部通过统一的接口与之交互,而内部具体由哪种缓存实现负责则由 CacheManager 决定和维护。这实现了高内聚低耦合的设计。

内部结构

class CacheManager extends ICache {
late ICache _cache;    // 持有的 ICache 实现实例

//...

// 转发方法实现
String getString(String key, {String defaultValue = ""}) {
return _cache.getString(key, defaultValue: defaultValue);
}

//...
}

外部调用会被转发到 _cache 持有的 ICache 实例上,而该实例则由 init() 方法在初始化时指定。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages