这些年,你对MVC是不是有点误解
Posted 一根筋都不缺的搬砖大汉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这些年,你对MVC是不是有点误解相关的知识,希望对你有一定的参考价值。
分享我在编程中的设计观念,遇到的技术点,让我们在工作和生活中一起追求自由
这几年,自由的概念让我印象深刻,前不久看到一个词叫辞职自由。
对,我刚刚辞职。站在新公司小山丘前,我想别人在实现财务自由的时候,我在追求加班自由,加班时努力搬砖,同时也有不加班的自由,架构让我们自由。
01 致MVC
MVC是经典的设计思想,Java很多框架设计上将这三层做分离,工程师在框架的约束下,很自然地遵循了MCV设计模式。
然而在Qt平台下,进行界面开发时,要遵循MVC模式全靠自觉,而且可能存在原则上的错误。毕竟上周,我们的小王同学就尝试MVC失败了,毕业两年的小伙又被上了一课。
从一次技术实现开始
小王同学要做一个功能,实现系统时间格式设置。
他做了一个格式调整界面,当用户点“保存”按钮时,获取新的格式,存储到数据库,并通知相关的模块,更新系统时间的显示。
小王同学的设计是这样的。
这个实现,PresetDialog承担了View和Controller的职责,那谁是Model呢,不是存储对象SystemPresetProvider,也不是关联模块SystemTimer。
这两年对MVC的误解
小王同学谈到这个实现时,说到了MVC,他对MVC的误解在于:Model只是数据,Controller中需要处理业务。
Model是数据和业务的封装,我们修改设计,蓝色部分就是Model,通常Controller在收到ui事件后,只需要简单调用Model的接口即可。
按照目前的架构,Model可以作为软件平台化代码。
或者有些同学会问,为什么View和Controller都放在了PresetDialog中。
这样的设计选择依靠经验,方便功能实现,且没有副作用,不会带来错误的依赖关系。
PresetDialog是ui相关的类,它依赖ui控件,ui控件发出信号直接传递到PresetDialog的槽函数中,槽函数的实现即Controller。
如果觉得文章有用请关注我,点击下方“在看”让更多人看到
推荐文章:
以上是关于这些年,你对MVC是不是有点误解的主要内容,如果未能解决你的问题,请参考以下文章