单个变量缓存
优点: 方便、易理解
缺点: 每个缓存函数都需要额外维护一个*Cache变量
String _getNativeVersionCache;
String getNativeVersion() {
_getNativeVersionCache ??= Native.getVersion();
return _getNativeVersionCache;
}
缓存辅助函数
优点: 常用、只需暴露一个memorize函数
缺点: memorize通常需要多次重载(处理不同参数的函数)
T Function() memorize<T>(T Function() fun) {
T cache;
return () {
cache ??= fun();
return cache;
};
}
String _getNativeVersion() {
return Native.getVersion();
}
String getNativeVersion = memorize(_getNativeVersion);
缓存辅助对象
优点: 方便、易理解、只需暴露一个memorize对象
缺点: 不常用
Map<String, dynamic> memorize = {};
String getNativeVersion() {
memorize['getNativeVersion'] ??= Native.getVersion();
return memorize['getNativeVersion'];
}
总结
| 单个变量缓存 | 缓存辅助函数 | 缓存辅助对象 | |
|---|---|---|---|
| 方便 | √ | x | √ |
| 易理解 | √ | x | √ |
| 易维护 | x | √ | √ |
| 常用 | √ | √ | x |