跳转至

事件与生命周期

事件和生命周期阶段应服务于明确的模块协作,不应替代所有函数调用,也不应依赖偶然的注册顺序。

事件

事件适合表达“某件事发生了”,不适合替代所有函数调用。

  • 一个模块需要通知多个监听者时,使用事件。
  • 调用者需要明确知道执行结果时,使用命令、查询或普通方法。
  • 事件 payload 应使用稳定字段,不要把临时 UI 节点、场景对象或项目局部状态塞进通用事件。

事件监听要有明确 owner。节点或短生命周期对象退出时,应取消监听或让框架通过 owner 清理。

生命周期

init()async_init()ready() 中都应保持防御式依赖读取。模块初始化顺序不应依赖偶然的注册顺序。

需要跨模块检查时,优先使用依赖声明和 GFArchitecture.get_dependency_diagnostics()。诊断只报告缺失依赖,不自动注册模块。

异步初始化不要无限等待外部流程。Installer 或模块需要等待外部资源时,应有项目层超时和失败策略。