Аплікація застосовує кеш для оптимізації повторного доступу до даних. Дані рідко оновлюються, однак важлива їх актуальність. Необхідно забезпечити спосіб підтримувати актуальні дані в кеші.
Читаємо дані із кешу. При зміні даних у сховищі, асинхронно оновлюємо кеш.
public Data GetData()
{
return _cache.GetOrAdd(_database.GetData);
}
public void UpdateData(Data data)
{
return _database.UpdateData(data);
}
class Database
{
public void UpdateData(Data data)
{
return _queue.EnqueueUpdatedData(Data data);
}
}
class Queue
{
public void UpdateData(Data data)
{
_cache.UpdateData(data);
}
}