当前位置: 首页 > 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        未完待续...

相关文章:

  • 经典卷积神经网络
  • 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的全场景国产化替代解析
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛暨七猫第六届百万奖金现实题材征文大赛征稿启事
  • “家国万里时光故事会” 举行,多家庭共话家风与家国情怀
  • 音乐节困于流量
  • 法治日报整版聚焦:儿童能否成为短视频主角?该如何监管?
  • 著名连环画家庞邦本逝世
  • 科普|揭秘女性压力性尿失禁的真相