当前位置: 首页 > news >正文

观QFramework框架底层逻辑有感

拿QFramework(以下简称QF)第一个案例简单理解框架底层代码逻辑。

使用QF框架重构后的代码,给我这种小白一种很抽象的感觉,但好的代码就是抽象的,这是不可否认的。于是想掌握一下这个框架的基础部分,至少能让自己在UI使用方面可以随心所欲。

首先,是整个CounterApp架构的初始化:

先是这行代码,通过CounterAppController层获取CounterAppModel层,在我看来,整个CounterApp架构的构建由此开始,为了方便管理,架构整体使用依赖注入的方式将各个子模块注入整个CounterApp的Architecture中。


通过上面的扩展方法一步步直接访问到Interface属性,通过get访问器,走进InitArchitecture()方法。


初步认识InitArchitecture方法(将各个子模块注册进大模块架构中,此案例指的是CounterApp架构)

此处T类型就是CounterApp 。

随后进入CounterApp的Init()方法,注册各个子模块:


 下面在Architecture抽象类中的RegisterModel方法中,将CounterAppModel的架构归属设置为CounterApp架构=>model.SetArchitecture(this);

 将CounterAppModel注入到架构CounterApp的IOCContainer容器中。

接下来,

什么时候调用下面的条件语句呢?

//TODO

 

 逻辑梳理到这里,又有新的疑问诞生了:为什么Model和System需要SetArchitecture(this),而Utility却不需要呢?

//TODO


这个OnRegisterPatch?.Invoke(mArchitecture);是什么作用?

//TODO


接下来初始化所有已经注入到CounterApp架构中的Model、System,并打上“已经初始化”标识。

 上面这个方法的作用理解,但是具体代码编写不是很明白。 

未理解的点=>关键字typeof的应用、IsInstanceOfType方法的作用、Cast<T>()方法作用

//TODO

回到主题,最后标识整个CounterApp架构初始化完成。最后返回初始化的CounterApp架构:


接下来就是QF的命令模式事件系统了。

//TODO        未完待续...

http://www.dtcms.com/a/193253.html

相关文章:

  • 经典卷积神经网络
  • Secs/Gem第四讲(基于secs4net项目的ChatGpt介绍)
  • 开源免费iOS或macOS安装虚拟机运行window/Linux系统
  • Qt中控件的Viewport作用
  • 服务器连接多客户端
  • 文章复现|(1)整合scRNA-seq 和空间转录组学揭示了子宫内膜癌中 MDK-NCL 依赖性免疫抑制环境
  • 数据结构中双栈的实现方法分享
  • PH热榜 | 2025-05-15
  • 解码生命语言:深度学习模型TranslationAI揭示RNA翻译新规则
  • Quic如何实现udp可靠传输
  • 缓存的相关内容
  • 该如何了解联排半孔的使用规范?
  • FPGA: UltraScale+ bitslip实现(ISERDESE3)
  • 2025年长三角+山东省赛+ 认证杯二阶段资料助攻说明
  • 快速搭建一个electron-vite项目
  • 套路化编程:C# winform ListView 自定义排序
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.4.4)
  • MySQL DBA数据运维管理经验分享:新手入门快速提升效率的新工具与技巧
  • NuGet程序包还原失败
  • 智能包装机控制终端技术方案:基于EFISH-SCB-RK3588/SAIL-RK3588的全场景国产化替代解析
  • Docker 安装 MySQL8
  • 【iOS】源码阅读(四)——isa与类关联的原理
  • Vue 学习随笔系列二十三 -- el-date-picker 组件
  • Inventor 转 STP 全攻略:软件操作与迪威模型在线转换推荐
  • 从零开始创建一个 Next.js 项目并实现一个 TodoList 示例
  • sap migo 保存增强点
  • 专项智能练习(加强题型)
  • 【图书推荐】几本人工智能实用性图书
  • C语言-指针数组和数组指针
  • 2025认证杯数学建模C题思路+代码+模型:化工厂生产流程的预测和控制