using GFramework.Core.Abstractions.utility; namespace GFramework.Game.Abstractions.ui; /// /// UI工厂接口,用于创建UI页面实例 /// public interface IUiFactory : IContextUtility { /// /// 创建或获取UI页面实例 /// /// UI标识键 /// 实例管理策略 /// UI页面实例 IUiPageBehavior GetOrCreate(string uiKey, UiInstancePolicy policy = UiInstancePolicy.AlwaysCreate); /// /// 仅创建新实例(不使用缓存) /// IUiPageBehavior Create(string uiKey); /// /// 预加载UI资源到缓存池 /// /// UI标识键 /// 预加载数量,默认1个 void Preload(string uiKey, int count = 1); /// /// 批量预加载 /// void PreloadBatch(params string[] uiKeys); /// /// 回收实例到缓存池 /// /// 要回收的页面实例 void Recycle(IUiPageBehavior page); /// /// 清理指定UI的缓存实例 /// void ClearCache(string uiKey); /// /// 清理所有缓存 /// void ClearAllCache(); /// /// 检查是否有缓存的实例 /// bool HasCached(string uiKey); #region 缓存策略管理 /// /// 获取UI的缓存配置 /// /// UI标识符 /// 缓存配置,如果未设置则返回默认配置 UiCacheConfig GetCacheConfig(string uiKey); /// /// 设置UI的缓存配置 /// /// UI标识符 /// 缓存配置 void SetCacheConfig(string uiKey, UiCacheConfig config); /// /// 移除UI的缓存配置,恢复默认配置 /// /// UI标识符 void RemoveCacheConfig(string uiKey); /// /// 获取所有UI的缓存统计信息 /// /// 缓存统计字典 IDictionary GetCacheStatistics(); #endregion }