mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 11:14:30 +08:00
- 将描述从英文改为中文,突出框架的游戏开发定位 - 添加base路径配置以支持GitHub Pages部署 - 重构导航菜单,提供更清晰的文档分类 - 创建详细的侧边栏结构,涵盖入门指南、核心框架、游戏模块等内容 - 更新首页Hero区域,添加框架Logo和现代化功能介绍 - 移除默认示例页面,替换为实际的框架文档 - 添加页脚版权信息和Apache许可证声明 - 创建核心框架、游戏模块和Godot集成的概览文档 - 添加入门指南,包括安装配置、快速开始和架构概览 - 实现完整的多层级文档导航和内容组织
3.7 KiB
3.7 KiB
Core 核心框架概览
GFramework.Core 是整个框架的基础,提供了平台无关的核心架构能力。
核心特性
🏗️ 清洁架构
基于 Model-View-Controller-System-Utility 五层架构,实现清晰的职责分离和高内聚低耦合。
🔧 CQRS 模式
命令查询职责分离,提供类型安全的命令和查询系统,支持可撤销操作。
📡 事件驱动
强大的事件总线系统,支持类型安全的事件发布订阅,实现组件间松耦合通信。
🔄 响应式编程
可绑定属性系统,自动化的数据绑定和 UI 更新机制。
🎯 依赖注入
完善的 IoC 容器,支持自动依赖解析和生命周期管理。
核心组件
架构组件
- Architecture - 应用架构管理器
- AbstractModel - 数据模型基类
- AbstractSystem - 业务系统基类
- AbstractUtility - 工具类基类
命令查询系统
- AbstractCommand - 命令基类
- AbstractQuery - 查询基类
- CommandExecutor - 命令执行器
事件系统
- EventBus - 事件总线
- EasyEvent - 简单事件
- OrEvent - 组合事件
属性系统
- BindableProperty - 可绑定属性
- BindablePropertyGeneric - 泛型可绑定属性
工具类
- IoC 容器 - 依赖注入容器
- Logger - 日志系统
- ObjectPool - 对象池
使用场景
Core 模块适用于任何 .NET 应用场景:
- 游戏开发 - 作为游戏架构基础
- 桌面应用 - WPF、WinForms 应用
- 移动应用 - MAUI、Xamarin 应用
- Web 应用 - ASP.NET Core 应用
- 控制台应用 - 命令行工具
安装
dotnet add package GeWuYou.GFramework.Core
dotnet add package GeWuYou.GFramework.Core.Abstractions
快速示例
using GFramework.Core.architecture;
// 定义架构
public class MyAppArchitecture : Architecture
{
protected override void Init()
{
RegisterModel(new UserModel());
RegisterSystem(new UserService());
RegisterUtility(new StorageUtility());
}
}
// 定义模型
public class UserModel : AbstractModel
{
public BindableProperty<string> Name { get; } = new("User");
public BindableProperty<int> Score { get; } = new(0);
}
// 使用架构
var architecture = new MyAppArchitecture();
architecture.Initialize();
var userModel = architecture.GetModel<UserModel>();
userModel.Name.Value = "New Name"; // 自动触发更新
学习路径
建议按以下顺序学习 Core 模块:
与其他模块的关系
GFramework.Core (基础层)
↓ 依赖
GFramework.Game (游戏层)
↓ 依赖
GFramework.Godot (引擎层)
Core 模块是其他所有模块的基础,提供核心的架构能力和设计模式实现。
性能特点
- 零额外开销 - 编译时优化,运行时无性能损失
- 内存友好 - 自动内存管理和对象回收
- 类型安全 - 编译时类型检查,避免运行时错误
- 可扩展 - 支持自定义扩展和插件