1、什么是MVC架构?这个架构有什么好处?
上位机的开发我采用mvc的架构,该架构的优点是逻辑相对清晰,也方便后期维护。MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。(注:解释来自菜鸟教程MVC 模式 | 菜鸟教程)。大概逻辑是这样,前端页面view点击事件,提出请求,后端控制器controller,调用相关的业务代码model,再将最后的结果分别写入model和view的显示。这么说可能会有一些抽象,我们可以更加的具体一些。就拿这个上位机的项目来说,例如:
1、页面点击一个“查询”按钮 -- view页面事件提交
2、控制器查询对应的文件是否存在该字段 --- 控制器操作配置文件代码(后端控制器controller,调用相关的业务代码model)
3、字段存在就返回一个true,并且前端页面弹出一个结果弹窗 --- view的显示
上述就是一个大概的过程,框架搭建好了之后,后续要添加什么功能的话,就直接遵循这样的逻辑去添加就可以了 代码会更加的简洁,架构更加清晰。会非常优雅,当然,我现在也是在学习阶段,希望可以和大家共同进步。
2、常见的问题
2.1 重复引用
MVC架构在python的常见问题有一个是重复引用。由于采用该架构需要分成好多不同的包,但是主要控制器又只能一个(ps:记住这个,后面会说到),就会出现在A包调用了B,又在B当中调用了A,这样的问题,就会导致程序出错。
目前我没有可以找到更好的解决办法,所以虽然采用MVC架构开发该软件,但是我将对应的业务文件都放在同一个包下,分了不同的.py文件去解决这个问题,通过不同的命名去区分。
2.2 主控制器唯一
主控制器的话,有且只能有一个。
主控制器的话,有且只能有一个。
主控制器的话,有且只能有一个。
重要的事情讲三遍。主控器唯一,可以确保所有的业务和逻辑统一由主控器调配,不会出现重复new的情况。子控制器,也就是各个功能模块的控制器,在构造函数当中都需要传入一个主控制器,用于接管和控制相关的业务,子控制器的存在是为了更加清晰程序架构,利于后期维护,可以更加通俗的理解为“归档”一样的概念。但是,这样也会引发一个问题,由于传入的主控制器,在程序跑起来之前,是一个空值的变量,所以在写程序的时候,会导致无法直接调用到主控制器的相关方法等,所以更加考验个人的细心,需要手打方法了。
3、结语
以上是个人的些许拙见和理解,有什么错误的地方,还请大家指出,共同进步。下一章,更新信号和槽的相关机制。