namespace GFramework.Core.Abstractions.StateManagement; /// /// 定义 Store 构建器接口,用于在创建 Store 之前完成 reducer、中间件和比较器配置。 /// 该抽象适用于模块化注册、依赖注入装配和测试工厂,避免调用方必须依赖具体 Store 类型进行配置。 /// /// 状态树的根状态类型。 public interface IStoreBuilder { /// /// 配置用于判断状态是否真正变化的比较器。 /// /// 状态比较器。 /// 当前构建器实例。 IStoreBuilder WithComparer(IEqualityComparer comparer); /// /// 添加一个强类型 reducer。 /// /// 当前 reducer 处理的 action 类型。 /// 要添加的 reducer。 /// 当前构建器实例。 IStoreBuilder AddReducer(IReducer reducer); /// /// 使用委托快速添加一个 reducer。 /// /// 当前 reducer 处理的 action 类型。 /// 执行归约的委托。 /// 当前构建器实例。 IStoreBuilder AddReducer(Func reducer); /// /// 添加一个 Store 中间件。 /// /// 要添加的中间件。 /// 当前构建器实例。 IStoreBuilder UseMiddleware(IStoreMiddleware middleware); /// /// 基于给定初始状态创建一个新的 Store。 /// /// Store 的初始状态。 /// 已应用当前构建器配置的 Store 实例。 IStore Build(TState initialState); }