MVC,MVP,MVVM那些事儿

MV*的讨论太多了。在此做粗浅的理解。对设计模式的理解也许会渐进式加深吧。

MVC

mvc解决的问题是:m和v的分离, m不应当因为v的改变而改变。所以v到m是单向依赖。
mvc的一般流程:view触发事件--> controller处理业务-->触发数据更新-->不知道谁更新了model数据--> model 带着数据回到了view --> view更新了数据。
但是,在mvc里,当有变化的时候要同时维护三个对象和三个交互,这显然让事情复杂化了。为了改进mvc,出现了mvp(不知道可不可以这么理解)

MVP (presenter)

mvp切断了view和model的联系。 让view只和presenter交互,减少在需求变化中需要维护的对象的数量。

MVVM(viewmodel)

MVVM的数据是双向绑定。当有更新时它让更维护变得更简单了。mvvm做服务端是不适用的。

它们的共同点

mv*都是基于数据驱动的。维护数据比维护UI爽多了(think of jquery)。

它们的区别:

  • 数据流向不同
    上图,看下MVC, MVVM的数据流向:


    Paste_Image.png
  • 解决问题不同
    正如上面所说,MVC最初是为了解决MV的分离。
  • 适用场景不同
    MVVM不太适合后端场景。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容