[返回](./Runtime-README.md) # /Convention/Runtime/Architecture --- 核心架构模块,提供依赖注入、事件系统和时间线管理功能 ## 接口定义 系统定义了以下核心接口来规范架构设计: ### ISignal 信号接口,用于事件系统的消息传递 ### IModel 模型接口,定义数据模型的序列化和反序列化能力: - `Save()` 保存数据到字符串 - `Load(string data)` 从字符串加载数据 ### IConvertable 转换接口,提供类型转换能力: - `ConvertTo()` 转换为目标类型 ### IConvertModel 组合接口,同时继承 `IModel` 和 `IConvertable` ## 核心类型 ### SingletonModel 泛型单例模型,提供类型安全的单例管理: - 支持依赖注入和实例替换 - 提供隐式转换操作符 - 集成模型序列化功能 ### DependenceModel 依赖模型,管理多个条件的组合验证: - 支持多个 `IConvertModel` 的依赖关系 - 提供枚举接口遍历所有依赖 - 所有依赖条件均满足时返回true ## 注册系统 ### 对象注册 - `Register(Type slot, object target, Action completer, params Type[] dependences)` - `Register(T target, Action completer, params Type[] dependences)` 提供基于类型的依赖注入容器: - 支持依赖关系管理 - 支持注册完成回调 - 自动解析依赖顺序 ### 注册查询 - `Contains(Type type)` / `Contains()` - `Get(Type type)` / `Get()` ## 事件系统 ### 消息监听 - `AddListener(Type slot, Action listener)` - `SendMessage(Type slot, ISignal signal)` - `SendMessage(Signal signal)` 提供类型安全的事件分发机制: - 支持按类型注册监听器 - 支持泛型消息类型 - 自动管理监听器生命周期 ### Listening类 监听器管理类,提供: - `StopListening()` 停止监听 ## 时间线系统 ### 时间线管理 - `CreateTimeline()` 创建新的时间线 - `AddStep(int timelineId, Func predicate, params Action[] actions)` 添加步骤 - `UpdateTimeline()` 更新所有时间线 - `ResetTimelineContext(int timelineId)` 重置时间线上下文 提供基于条件的任务调度: - 支持多条时间线并行执行 - 基于谓词的条件触发 - 支持动态添加执行步骤 ## 类型格式化 ### 类型序列化 - `FormatType(Type type)` 格式化类型为字符串 - `LoadFromFormat(string data)` 从字符串加载类型 - `LoadFromFormat(string data, out Exception exception)` 安全加载类型 使用格式:`Assembly::FullTypeName` ## 内部管理 ### 系统重置 - `InternalReset()` 重置所有内部状态 清理以下组件: - 注册历史 - 未完成的目标 - 完成器回调 - 依赖关系 - 子对象容器 - 事件监听器 - 时间线队列