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); }