耦合性 V3
07/12
当前耦合性已经从“中低耦合”进一步改善到:
低到中低耦合;核心玩法聚合直连基本消除,剩余主要是状态 Facade 和数据 Store 的中心化耦合。
量化结果
只读扫描 scripts/:
textLua 文件数:175 内部 require 边数:534 循环依赖数:0
关键聚合模块入度:
textPages.纸上障碍 incoming = 0 Pages.怪物工坊.战斗机制 incoming = 0 Pages.纸上战斗 incoming = 0 Pages.纸上关卡 incoming = 0 Pages.纸上建家 incoming = 0 Pages.怪物工坊 incoming = 0
这说明前两轮解耦是有效的:业务代码已经不再直接依赖这些“大聚合模块”。
当前做得好的部分
1. 大聚合模块直连已清零
当前这些模块不再作为业务依赖中心:
- Pages.纸上障碍
- Pages.怪物工坊.战斗机制
- Pages.纸上战斗
- Pages.纸上关卡
- Pages.纸上建家
- Pages.怪物工坊
尤其是刚处理完的两个热点:
textPages.纸上障碍 incoming = 0 Pages.怪物工坊.战斗机制 incoming = 0
现在调用侧已经转向更细模块,例如:
- Pages.纸上障碍域.地形几何
- Pages.纸上障碍域.生成器
- Pages.纸上障碍域.命中处理
- Pages.纸上障碍域.绘制
- Pages.怪物工坊.战斗机制域.炮塔机制
- Pages.怪物工坊.战斗机制域.地雷机制
- Pages.怪物工坊.战斗机制域.墙体机制
- Pages.怪物工坊.战斗机制域.命中机制
- Pages.怪物工坊.战斗机制域.玩家机制
- Pages.怪物工坊.战斗机制域.挑战状态
- Pages.怪物工坊.战斗音频
2. 循环依赖为 0
textcycle_count = 0
这是很重要的结构健康指标。说明当前拆分虽然更细,但没有制造模块环。
3. 战斗机制已变成“域模块接线”结构
Pages.怪物工坊.战斗机制 不再被业务侧直接引用。
现在实际业务依赖集中在这些更小职责模块上:
textPages.怪物工坊.战斗音频 incoming = 9 Pages.怪物工坊.战斗机制域.炮塔机制 incoming = 6 Pages.怪物工坊.战斗机制域.玩家机制 incoming = 5 Pages.怪物工坊.战斗机制域.挑战状态 incoming = 4 Pages.怪物工坊.战斗机制域.地雷机制 incoming = 4 Pages.怪物工坊.战斗机制域.命中机制 incoming = 4
这比以前所有逻辑都打到 战斗机制 一个模块健康很多。
当前主要耦合热点
热点 1:状态 Facade 入度仍然最高
入度最高模块:
textPages.纸上状态域.战斗 39 Pages.纸上状态域.家园 28 Pages.纸上状态域.进度 26 Pages.纸上状态域.背包 15 Pages.纸上状态域.界面 14
其中规模:
textPages/纸上状态域/战斗.lua: 351 行,70 个函数 Pages/纸上状态域/家园.lua: 257 行,52 个函数 Pages/纸上状态域/进度.lua: 143 行,29 个函数
这类耦合目前是可接受的中心化状态 Facade 耦合,不是危险耦合。
但 战斗.lua 已经明显偏大:
text战斗状态 Facade:351 行 / 70 函数 / 入度 39
它有成为新“大状态服务”的趋势。
建议后续优先观察或拆分:
- Pages.纸上状态域.战斗
- 兵体状态
- 敌人集合
- 弹体集合
- 拾取/粒子/爆炸集合
- 战斗资源与行动点
- Pages.纸上状态域.家园
- 安全屋状态
- 公开安全屋状态
- 家园对象状态
- 工作台状态
- Pages.纸上状态域.进度
- 页数进度
- 清场阶段
- 休整阶段
优先级:中高,但不建议一次性大拆。先从 战斗.lua 内部最独立的集合状态开始。
热点 2:Data.Store 仍是非玩法侧中心 Store
textData.Store incoming = 18
直接依赖包括:
- App.帧更新
- App.登录流程
- App.纸上投资评分服务
- Data.数据迁移
- Pages.分析.*
- Pages.持仓.*
- Pages.记录.*
- Pages.设置
- Pages.怪物工坊.插件域.加载会话
这个热点主要在投资/持仓/记录应用侧,不是当前纸上战斗主循环最大的风险。
当前可接受,但如果后续继续优化主应用架构,可以按领域服务拆:
- App.账户服务
- App.持仓服务
- App.记录服务
- App.分析服务
- App.设置服务
- App.云同步服务
优先级:中低,除非要继续优化非游戏投资系统。
热点 3:Pages.纸上流程 仍是流程协调中心
textPages.纸上流程 incoming = 7
调用来源:
- Pages.纸上建家域.页面流程
- Pages.纸上关卡域.公开失败休整
- Pages.纸上背包
- Pages.纸上关卡域.休整视图
- Pages.纸上翻页
- Pages.纸上排行
- Pages.怪物工坊.入口域.导航绑定
Pages.纸上流程.lua 规模不大:
text55 行,9 个函数
目前更像轻量流程门面,风险不高。
如果未来继续膨胀,可以改成命令注册器或事件式导航,但现在不急。
如果未来继续膨胀,可以改成命令注册器或事件式导航,但现在不急。
优先级:中低。
热点 4:新的细域模块入度上升,但属于正常现象
例如:
textPages.纸上障碍域.地形几何 incoming = 8 Pages.纸上障碍域.生成器 incoming = 6 Pages.怪物工坊.战斗机制域.炮塔机制 incoming = 6 Pages.怪物工坊.战斗音频 incoming = 9
这些是聚合解耦后的自然结果。
目前它们职责明确,比之前依赖大聚合模块好。
目前它们职责明确,比之前依赖大聚合模块好。
需要注意的是:
textPages/纸上障碍域/地形几何.lua: 430 行,29 函数 Pages/怪物工坊/战斗机制域/炮塔机制.lua: 305 行,7 函数
地形几何.lua 行数偏高,但它是算法/几何集中模块,问题不严重。
如果后续继续加地形类型,可以再拆:
如果后续继续加地形类型,可以再拆:
- 河流桥梁几何
- 坑洞几何
- 废墟墙体几何
- 实体避障
优先级:中。
当前总体评价
架构状态
text大聚合直连耦合:低 循环依赖风险:低 玩法域职责边界:较清晰 状态 Facade 耦合:中 数据 Store 耦合:中 流程协调耦合:中低
综合评分
如果 10 分表示“低耦合、边界清晰、可持续演进”:
text当前:8.1 / 10 上一轮:7.5 / 10 优化前估计:4.5 ~ 5 / 10
主要加分点:
- Pages.纸上障碍 入度降为 0。
- Pages.怪物工坊.战斗机制 入度降为 0。
- 大聚合模块直连基本全部清零。
- 循环依赖仍为 0。
- 战斗主循环现在依赖更细的机制域模块。
主要扣分点:
- Pages.纸上状态域.战斗 入度 39,且 351 行 / 70 函数,已经偏大。
- Pages.纸上状态域.家园 入度 28,后续可能继续变胖。
- Data.Store 仍是应用数据中心热点。
- Pages.纸上障碍域.地形几何 430 行,未来新增地形时可能继续膨胀。

