22 | 桌面程序的架构建议-笔记

MVC 全称是 “模型 (Model)- 视图 (View)...


准确的理解:

Model 是数据,

View 是数据的显示结果,同时也接受用户交互事件,也就是事件

Controller 负责 Process(处理)

它接受 “Model + 由 View 转发的事件” 作为 ...

MVP架构:

模型 (Model)- 视图 (View)- 表现 (Presenter)



架构优劣的评判标准


理解 Model 层


DOM 是 “面向对象” 意义上的数据。它不只是有数据结构,...

这种情况下会有两种常见的架构误区

1. Controller 层直接操作数据库

2. Controller 直接操作 ORM。

3. Model 层的使用接口最重要的是要自然体现业务的需求。

单一职责不只是要求不要让一个子系统(或模块)干多件事情

有了 DataChanged 事件,上层就能够感知到 Mod...


理解 View 层

自己直接调用 GDI 接口自己画,要么创建子 View 让别...

它是响应用户交互事件的入口,这是操作系统的界面编程框架决定的

View 应该把自己所有的事件都委托(delegate)出去...

要考虑

其一,View 层不一定会负责生成所有用户看到的 View

View 层可能需要非常友好的委托(delegate)机制的...

Model 层要为 View 层提供一些专享的只读访问接口

看似只是根据数据绘制界面,似乎很简单,但实则不简单

重绘是不可能的 这辈子都不可能的

在局部更新这个优化足够复杂时,我们往往不得不在 ViewModel这层做




Model-View-ViewModel 

ViewModel 是 View 层的一部分


理解 Controller 层


Model 层在最底层;View 层在中间

Controller 层在最上方

谁负责把 MVC 各个模块串起来呢?当然是应用程序(Appl...

提供应用程序的二次开发接口(API,全称为 Applicat...

通过那一层呢?

最适合的应该是

ViewModel 层



有疑问、勘误、请您在下方留言,感谢您的支持 ღ( ´・ᴗ・` )!

感谢您阅读,这篇文章归 极客点子版权所有.
如果转载,请注明出处: 极客点子版权所有(/page/956.html) 知识共享许可协议
本网站使用 创作共用 归属 - 非商业用途 - 共享4.0国际许可协议的相同方式 许可.

关于作者:

    作者:

    reverse()

    简介:

    nodejs 全栈工程师 、作家、github 开源爱好者
    研究方向:数据分析、 深度学习、 服务器架构、 系统原理

    著作:

    最爱的编程语言:

    Javascript
    Python