摘要:
在此篇介绍 BindableProperty。 BindableProperty 提供 数据 + 数据变更事件 的一个对象。 基本使用 using UnityEngine; namespace QFramework.Example { public class BindablePropertyExa 阅读全文

摘要:
QFramework 除了提供了一套架构之外,QFramework 还提供三个可以脱离架构使用的工具 TypeEventSystem、EasyEvent、BindableProperty、IOCContainer。 这些工具并不是有意提供,而是 QFramework 的架构在设计之初是通过这三个工具 阅读全文

摘要:
TypeEventSystem 是基于 EasyEvent 实现的。 EasyEvent 也是一个可以脱离架构使用的工具。 这里我们来学习一下基本用法。 基本使用 代码如下: using UnityEngine; namespace QFramework.Example { public class 阅读全文

摘要:
QFramework 提供了拦截 Command 的 API。 我们尝试在 CounterApp 中实现一个 Command 日志。 代码很简单,如下: public class CounterApp : Architecture<CounterApp> { protected override v 阅读全文

摘要:
不管是 System、Model 还是 Utility,都会注册到 Architecture 中。 伪代码如下: namespace QFramework.PointGame { public class PointGame : Architecture<PointGame> { protected 阅读全文

摘要:
由于 QFramework 支持 MVC、分层 和 CQRS,再加上提供了使用规范,那么 QFramework 就可以达到高度的标准化,达到高度的标准化那么就有了做一件事情的条件,就是纸上设计。 假如我们想实现一个主角吃金币,金币数量增加的功能,则可以按照如下顺序设计图。 首先需要确定数据结构。 我 阅读全文

摘要:
首先,我们来实现一个好玩的事情,就是在前边已经实现好的 CounterApp 的基础上,光速实现一个编辑器版本的 CounterApp。 代码非常简单,如下: #if UNITY_EDITOR using System; using UnityEditor; using UnityEngine; n 阅读全文

摘要:
QFramework 架构提供了四个层级: 表现层:IController 系统层:ISystem 数据层:IModel 工具层:IUtility 除了四个层级,还提供了 Command、Query、Event、BindableProperty 等概念和工具。 这里有一套层级的规则,如下: 表现层: 阅读全文

摘要:
Query 是 CQRS 中的 Q,也就是 Command Query Responsibility Saperation 中的 Query。 关于 Command 我们已经介绍了。 而 Query 是和 Command 对应的查询对象。 首先 Controller 中的表现逻辑更多是接收到数据变更 阅读全文

摘要:
QFramework 本身支持依赖倒置原则,就是所有的模块访问和交互都可以通过接口来完成,代码如下: using UnityEngine; using UnityEngine.UI; namespace QFramework.Example { // 1. 定义一个 Model 对象 public 阅读全文
