public interface ICache<TData>
{
TData Get(object key);
void Set(object key, TData data);
}
public interface ICacheManager<TData> : ICache<TData>
{
Func<object, TData> SourceGetter { get; }
}
Dictionary<object, TData> 簡單快取。ICache,若快取未命中則呼叫 SourceGetter 取得資料並存入快取,支援鏈式快取。public TData Get(object key)
{
TData data = cache.Get(key);
if (data != null) return data;
data = SourceGetter(key); // 從資料來源取得
cache.Set(key, data);
return data;
}
完整程式碼請參考原文。