using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PaymentLogs.Repositories { internal abstract class Repo { // в словаре хранится кеш данных protected Dictionary _data = new Dictionary(); // загрузка данных из базы данных public abstract void Load(); // получение всех данных из кеша public virtual List All() { return _data.Values.ToList(); } // получение конкретного экземпляра по id/ключу public virtual V Get(K key) { return _data[key]; } //обновление данных в кеше public virtual void Update(K key, V value) { _data[key] = value; } // сохранение данных из кеша в базу данных public abstract void Save(); } }