using System; using GFramework.Game.Abstractions.enums; namespace GFramework.Game.Abstractions.ui; /// /// UI缓存配置 /// 用于配置UI实例的缓存行为 /// public class UiCacheConfig { /// /// 最大缓存数量 /// public int MaxCacheSize { get; set; } = 10; /// /// 缓存淘汰策略 /// public CacheEvictionPolicy EvictionPolicy { get; set; } = CacheEvictionPolicy.Lru; /// /// 访问后过期时间(可选,null 表示不启用) /// public TimeSpan? ExpireAfterAccess { get; set; } /// /// 创建默认配置(LRU 策略,最大 10 个实例) /// public static UiCacheConfig Default => new() { MaxCacheSize = 10, EvictionPolicy = CacheEvictionPolicy.Lru, ExpireAfterAccess = null }; /// /// 创建 LRU 策略配置 /// /// 最大缓存数量 /// 访问后过期时间 public static UiCacheConfig Lru(int maxSize = 10, TimeSpan? expireAfter = null) => new() { MaxCacheSize = maxSize, EvictionPolicy = CacheEvictionPolicy.Lru, ExpireAfterAccess = expireAfter }; /// /// 创建 LFU 策略配置 /// /// 最大缓存数量 /// 访问后过期时间 public static UiCacheConfig Lfu(int maxSize = 10, TimeSpan? expireAfter = null) => new() { MaxCacheSize = maxSize, EvictionPolicy = CacheEvictionPolicy.Lfu, ExpireAfterAccess = expireAfter }; }