View difference between Paste ID: CWN1N2ES and iMdb1PNG
SHOW: | | - or go back to the newest paste.
1
public class CacheItem {
2
	// детали реализации (конструктор) не включены
3
	public DateTime TimeAdded { get; }
4
	public object Data { get; set; }
5
}
6
7-
    void Add(string key, object item);
7+
8
public interface ICache {
9
    IStorage Storage { get; set; }
10
    ICacheClearBehavior CacheClearBehavior { get; set; }
11
	IReadOnlyCollection<CacheItem> Items { get; }
12
    
13
    void Add(string key, object data);
14
    bool Remove(string key);
15
	
16
}
17
18-
    IEnumerable<string> GetItemsToRemove(ICache cache);
18+
19-
    event Action CleanRequested; // вообще тут лучше отдельный тип делегата для события сделать, но для демонстрации это оверкилл
19+
20
    T Load<T>();
21
    void Save(object item);
22
}
23
24
public interface ICacheClearBehavior {
25
	ICache Cache { get; set; }
26
    event Action<IEnumerable<string>> CleanRequested;
27
}