Files
StellarX-kaifa/开发记录/功能变更/Feature-20260409-0001-基础资源所有权与生命周期收口.md
T

74 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 功能变更 ID: Feature-20260409-0001
> 适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。
> 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。
## 基本信息
- ID: Feature-20260409-0001
- 标题: 基础资源所有权与生命周期收口
- 状态:已完成
- 类型:修改
- 级别:L2 中等
- 模块:Control / Window / Button / Table / Label
- 版本 / 分支:`master`
- 环境:Windows + EasyX + VS2022
- 负责人:Codex 协作修改
## 变更背景
- 背景:
- 初始版本中一部分资源持有关系不明确,析构顺序和边界输入处理存在隐患。
- 目标:
- 提高基础稳定性与维护性。
- 不做什么:[可选]
- 不处理字符集体系切换问题。
## 变更内容
- 变更摘要:
- 收紧资源所有权,调整析构顺序,补齐基础控件边界防御。
- 新增项:[可选]
- `Control` 提供更明确的快照有效性查询和宿主窗口回溯能力。
- 修改项:[可选]
- `Window` 析构顺序调整
- `Table` 行数据规范化、空状态防御、页数保护
- `Label` 动态文本变化处理
- 删除 / 废弃项:[可选]
- `MessageBox` 外层强制 `Dialog` 初始化的做法被移除
- 受影响的文件 / 类 / 函数:
- `Control.h / Control.cpp`
- `Window.h / Window.cpp`
- `Button.h / Button.cpp`
- `Table.h / Table.cpp`
- `Label.cpp`
- `MessageBox.cpp`
- 对外 API / 属性变化:[可选]
- `Button` 回调设置接口语义更正常
## 行为对照
- 变更前:
- 生命周期和边界输入更依赖使用者自觉,异常输入容易直接进入绘制或析构链。
- 变更后:
- 基础控件会主动规范化一部分输入,生命周期顺序更安全。
- 兼容性说明:兼容
- 迁移说明:[可选]
- 无强制迁移要求
## 验证与落地
- 验证方式:
- 静态审查 + 编译验证 + 现有测试用例回归
- 验证结果:
- 主要基础问题已收敛
- 关联 BUG / Fix[可选]
- `BUG-20260409-0002`
- `Fix-BUG-20260409-0002`
- Commit:
- 早期工作区修改 + `4a6e153` + `7f8431a`
- PR[可选]
- 发布版本:[可选]
- 备注:[可选]
- 其中一部分修改早于仓库基线