按 UI 五层规范重构 SelectRoleForm 并整理事件目录
- SelectRoleForm 五层归位:UseCase 改为构造注入 IProcedureMenu(新增 Runtime/ProcedureInterface),RawData 暴露原始 StatModifier[] 而非展示串,Controller 复用 ItemDescUtility 拼装属性文本,并修复 OpenUIAsync(object) 合法 RawData 分支缺少 return 的误报路径 - StatModifier 去展示职责:删除 _statTypeNames / ToString,富文本格式化下沉到 Presentation 层的 ItemDescUtility.Describe(StatModifier),CreatePropDescription 改用统一入口 - 事件目录按 UIForm 归档:Base/Event/UI/Menu/* 拆解到 SelectRoleForm/ MenuForm/ DialogForm/ DisplayItemInfoForm/ Combat/ 等各自子目录,MenuSelectRoleReturnEventArgs 改名 SelectRoleReturnEventArgs,语义归属本 UI 模块 - IUIFormController → IUIController 改名,联动 UIControllerBase / UIRouterComponent / Editor - 同步更新 docs/UI-5层架构设计规范.md 中相关示例与 MenuForm.prefab、ProcedureMenu 引用
This commit is contained in:
+5
-5
@@ -76,7 +76,7 @@ View
|
||||
约束:
|
||||
|
||||
- 实现 `IUIUseCase`
|
||||
- 命名:`XXXFormUseCase`
|
||||
- 命名:`XXXUseCase`
|
||||
- 对外提供语义化方法,例如 `CreateInitialModel`、`TryRefresh`、`Select`、`Confirm`
|
||||
- 返回值只能是 `RawData` 或纯业务结果对象,例如 `XXXResult`、`XXXActionResult`
|
||||
- 不依赖 `Context`、`View`、`UGuiForm`、`MonoBehaviour` 等 UI 类型
|
||||
@@ -95,12 +95,12 @@ View
|
||||
|
||||
约束:
|
||||
|
||||
- 命名:`XXXFormRawData`
|
||||
- 命名:`XXXRawData`
|
||||
- 只描述业务数据,不包含 UI 展示行为
|
||||
- 可以包含领域对象、配置对象、标识符、枚举、数值和纯数据集合
|
||||
- **轻量场景下可携带回调委托**,由 Controller 在构建 Context 前完成注册
|
||||
- 不允许依赖 `Context`、`View`、`Sprite`、`TMP_Text` 等展示相关类型
|
||||
- 不允许直接使用 `XXXItemContext`、`XXXFormContext` 作为字段类型
|
||||
- 不允许直接使用 `XXXItemContext`、`XXXContext` 作为字段类型
|
||||
|
||||
说明:
|
||||
|
||||
@@ -116,7 +116,7 @@ View
|
||||
|
||||
- 对启用 `UIRouterComponent` 管理的 UIForm,必须存在可实例化的 Controller 绑定;未绑定时 Router 应直接失败并输出 Error,不允许 fallback 到 `GameEntry.UI.OpenUIForm(...)`
|
||||
- 命名:`XXXFormController`
|
||||
- 可基于 `UIFormControllerBase<TContext, TForm>` 实现
|
||||
- 可基于 `UIControllerBase<TContext, TForm>` 实现
|
||||
- 通过 `BindUseCase(IUIUseCase)` 注入用例并做类型校验
|
||||
- 当前对外入口为 `OpenUIAsync(object userData = null, float timeout = 30f)` 与 `CloseUIAsync(...)`
|
||||
- `OpenUIAsync` 只允许外部传入 `RawData` 或可转换为 `RawData` 的参数,不接受外部传入 `Context`
|
||||
@@ -146,7 +146,7 @@ View
|
||||
约束:
|
||||
|
||||
- 继承 `UIContext`
|
||||
- 命名:`XXXFormContext`、`XXXItemContext`、`XXXAreaContext`
|
||||
- 命名:`XXXContext`、`XXXItemContext`、`XXXAreaContext`
|
||||
- 只能由 `Controller` 构建和更新
|
||||
- 字段以展示友好为目标,例如标题、描述、图标、颜色、状态、列表、按钮文案
|
||||
- **不允许携带回调委托或行为**,交互行为由 Controller 注册,View 通过 UI 专用事件通知 Controller
|
||||
|
||||
Reference in New Issue
Block a user