🧩 gmvc2 通用框架

底座 · 以「工厂 / 配方 / 产品」为核心的自定义框架,让配置与运行彻底分离。

📌 技术定位

gmvc2 是一个通用的编程框架,包含通用内存管理、脱耦机制、事件调度以及多种项目通用的底层库支持, 目标场景是游戏开发与 GUI 工具开发。它把配置内容声明为「配方」, 运行时根据配方生产「产品」对象,从而做到配置时不关注产品、运行时不改配方,确保数值与逻辑分离; 其分层设计参考了 AS3 时代的 PureMVC 思想。

.NET 10 / .NET Framework 4.7.2 C# / Nullable 工厂模式 场景隔离

✨ 核心特性

🏭 工厂 / 配方 / 产品

工厂对应「数据库的一张表」,配方对应「一行数据」,产品是运行时根据配方动态生产的对象;产品可进入对象池复用,减少 GC 压力。

🎬 场景(Scene)

服务与工厂注册在场景容器中,可以以场景为单位整体装载与卸载;并支持每客户端独立的 ScopedScene(多客户端防并发、合并项防冲突)。

🧱 服务 / 中介者分离

服务(ServiceBase)对外提供只读数据;中介者(MediatorBase)强制无状态、承载业务协议,其方法与策划文档描述的接口一一对应。

🎯 命令与脱耦

中介者调用有固定生命周期的命令(CommandBase)执行具体业务;三方角色(策划、数值、程序,均可能是 AI Agent)可相互脱耦、同时开发。

🔧 关键技术点

🧪 结构示例

FactoryBase            // 工厂:对应「数据库的一张表」
 ├─ RecipeMod[]        // 配方模型:定义字段结构
 │    └─ RecipeField[] // 字段定义(类型 / 默认值 / 校验 / 标签)
 ├─ RecipeBase[]       // 配方数据:对应「一行数据」
 │    └─ RecipeMeta    // 元数据(metaId, id, 模型, 作者, 日期)
 └─ ProductBase[]      // 运行时产品:可进对象池复用
本页用于分享开发思路与展示作品,目前未承诺开源或提供下载地址。作者应用技术不含GPL等强制开源协议。