当前位置: 首页 > 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.xdnf.cn/news/471979.html

相关文章:

  • 丝杆升降机限位失灵深度剖析:从故障机理到智能监测方案
  • 硬件创新新纪元:从算力怪兽到便携革命,2025 年如何重新定义计算体验
  • unordered_set和unordered_map
  • 详细解释api
  • 不同进制的数据展示(十进制、十六进制、编码方式)
  • 理解 Viewport:让网页在手机端正确显示的秘诀
  • 星形测试卡:射线摄影获取焦点星卡射线照片的工具
  • win11安装Joplin Server私有化部署(docker)
  • 【应急响应工具教程】Windows日志快速分析工具——Chainsaw
  • 数智管理学(九)
  • MySQL 8.0 OCP 1Z0-908 题目解析(4)
  • Process exited with an error: 1 (Exit value: 1) 问题处理
  • Element Plus 取消el-form-item点击触发组件,改为原生表单控件
  • Seata源码—3.全局事务注解扫描器的初始化一
  • 5月15日day26打卡
  • 计量经济学——预测与chow检验
  • 以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • C++ QT图片查看器
  • 软件设计师考试《综合知识》软件过程模型考点分析——求三连
  • 044-代码味道-数据类
  • 【YOLO 系列】基于YOLO的道路坑洞检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
  • SWMM相关文档共享
  • BUUCTF——shrine
  • 牛客网 NC22167: 多组数据a+b
  • 差分振荡器:支持0.15ps超低抖动的高速时钟核心
  • 腾讯AI军备极速扩张
  • LCD电视LED背光全解析:直下式 vs 侧光式、全局调光 vs 局部调光与HDR体验
  • (6)python开发经验
  • hbit资产收集工具Docker(笔记版)
  • 电商热销榜的5种实现方案