mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-24 20:34:29 +08:00
- 实现 Store 类作为集中式状态容器,默认支持状态归约和订阅通知 - 添加 IReadonlyStore、IStore、IReducer 等状态管理相关抽象接口 - 实现 StoreExtensions 扩展方法,提供 Select 和 ToBindableProperty 选择器功能 - 添加 StoreSelection 类,支持从完整状态树中投影局部状态视图 - 实现 StoreDispatchContext 和 StoreDispatchRecord 用于分发过程诊断 - 添加 IStoreMiddleware 中间件接口,支持在分发过程中插入日志和审计逻辑 - 实现完整的状态选择器和绑定属性桥接功能,便于现有 UI 代码复用 - 添加 Store 相关单元测试,覆盖状态归约、订阅通知和选择器桥接场景
19 lines
904 B
C#
19 lines
904 B
C#
namespace GFramework.Core.Abstractions.StateManagement;
|
|
|
|
/// <summary>
|
|
/// 定义 Store 分发中间件接口。
|
|
/// 中间件用于在 action 分发前后插入日志、诊断、审计或拦截逻辑,
|
|
/// 同时保持核心 Store 实现专注于状态归约与订阅通知。
|
|
/// </summary>
|
|
/// <typeparam name="TState">状态树的根状态类型。</typeparam>
|
|
public interface IStoreMiddleware<TState>
|
|
{
|
|
/// <summary>
|
|
/// 执行一次分发管线节点。
|
|
/// 实现通常应调用 <paramref name="next"/> 继续后续处理;若选择短路,
|
|
/// 需要自行保证上下文状态对调用方仍然是可解释的。
|
|
/// </summary>
|
|
/// <param name="context">当前分发上下文。</param>
|
|
/// <param name="next">继续执行后续中间件或 reducer 的委托。</param>
|
|
void Invoke(StoreDispatchContext<TState> context, Action next);
|
|
} |