用途:为 IntelliJ 平台的 Swing 界面设计功能组件架构,把渲染、用户意图、UI 状态、应用逻辑、异步工作、导航与生命周期明确归属,采用单向数据流与显式状态,并保证 EDT 安全与生命周期清理。
主要能力:提供架构分级(Level 1 单 View/组件类,约 200 行以内;Level 2 View + Controller,约 200-600 行;Level 3 State + Intent,可选 Reducer 与 Effects),强调按复杂度选择最低层级,不强制 MVC/MVP/MVVM/MVI 命名。给出 View、Controller、Services 的职责边界:View 负责构建控件与布局、渲染状态、发出语义意图;Controller 负责校验、调用服务与导航、持有状态与异步协调;Services 保持与 Swing 无关。要求 render(state) 确定、幂等、完整,禁止用控件属性充当应用状态。
使用方式:先阅读本地模块说明并检查功能边界(调用方、服务、监听器、异步与释放);映射职责归属;选择最低架构层级;保持 Swing 在 View 内,服务独立;对非平凡状态采用单向数据流;验证 EDT 安全、取消、释放与状态转换。EDT 方面:在 EDT 上构建、读取、修改 Swing 状态,把耗时工作移出 EDT 后再回到 EDT 更新;使用与功能生命周期绑定的 CoroutineScope,禁止 GlobalScope;注意 ModalityState 的捕获与传递。生命周期方面:用功能级作用域统一取消异步、订阅与重试,实现 Disposable/AutoCloseable 并桥接到作用域,确保移除监听器、停止计时器、取消后台任务、防止过期结果渲染到已释放 UI。
适用场景:IntelliJ 平台插件或 IDE 功能的 Swing UI 设计与重构、代码评审。限制:资料未提供安装命令、价格、平台版本要求或具体 API 兼容性信息;自定义可复用 Swing 控件或自绘需先获得用户明确批准,并应提供 ComponentUI 委托;不要求为满足模式而引入接口、Presenter、Reducer、事件总线或全局 UI 存储。