Article
MVC 常用常新,温故知新:纵你虐我千百遍 我仍待你如初见
MVC 是基础,是核心,是程序员绕不过去的坎,只要涉及到视图和界面就必然会遭遇它。 虽然写了十几年代码了,看过不少书,但在实际项目中,代码开始还是模块清晰的,写着写着,写到后面就成了一锅粥。 过去靠翻书温故而知新,问领导来解惑。现在有了 AI 就方便多了,不仅能直接获得理论知识,还能把现实场景的困惑直接问AI。 关于 Flutter 中使用 MVC 的一些实际的问题,尤其是结合 ChangeNotifier 使用的时候。具体问题如下: 1、在 flutter 应用中有document,model,controller 三层结构时,哪些去继承ChangeNotifier ?如果 model、document 都是 ChangeNotifer,那在 controller 的一个操作中修改多个属性,不是就会触发多次更新? 2、在模型中包装多属性更新,这么去写不是把 controller 的事情也做了吗? 3、看到 flutter 内部很多 controller 也是 ChangeNotifier 的,如 TabController,ScrollController(内部的 position ),怎么理解,或者说区分,才不至于混乱? 4、对于一个相对复杂的功能(用 MVC 的方式有 controller、model、document ),把它封装成组件提供给其他应用使用,像使用 TextField 一样,怎么设计处理? 5、什么时刻用模型 model 属性,什么时刻用 widget小组件 内部 state 属性? 在 VSCode 里面,基于已有代码,又反复的咨询AI怎么进行修改。暂时定下来: 1、model 和 document 都实现 ChangeNotifier; 2、model 用于更新视图; 3、document 放在 controller 里面:[1] controller 加载 document 的时刻,监听它的变化,来重建视图模型;[2] 执行 command 命令来更新 document。 按照这种方式,暂时算是把代码理顺了。
Related
Related posts
-
Conjure使用指南:告别接口API对接烦恼,拥抱高效开发
2025-07-20
-
树莓派 OpenClaw Browser 看不见摸不着?给它配个 VNC 图形环境,踏实安心的Debug
2026-03-09
-
从使用者到创造者:用 AI 构建你的专属 VS Code 工具链
2026-02-27
-
大力出奇迹:使用 OpenCode 转完整个 Joda-Time,进程 Bun 内存飙到 21G
2026-01-17