美文网首页
软件框架模式

软件框架模式

作者: LoveBugs_King | 来源:发表于2018-09-06 17:06 被阅读0次

软件框架模式有哪些?MVC、MVP、MVVM等,接下来我们主要理解这三种模式。

简单概括:主要有三个板块:视图——控制器——数据模型,MVC中三者是一个闭环,它把视图层和业务层简单分离,页面展示是直接根据数据模型进行渲染,view变化时传递给控制器,控制器进行交互操作和直接调用数据模型给出的方法修改数据模型。MVP在mvc的基础上切断了视图和数据逻辑的联系把视图层和业务层更深的分离,分工明确,提高开发效率,controller需要做的操作更多更臃肿。MVVM在MVP的引入了数据驱动、双向绑定的概念,把简单的逻辑交给视图层处理(如v-if v-for),用户交互视图改变大部分只要操作数据,视图改变也会直接改变数据,减轻控制器的压力

MVC(Model数据结构-View用户界面-Controller控制器):Model是应用程序中处理数据逻辑部分的;View是应用程序中处理数据显示的部分;Controller是应用程序中处理用户交互逻辑部分。

MVC流程图

优点:对视图层和业务层大概进行分离。更改视图层代码不用重新编译模型和控制器代码,使后端专注于业务逻辑,前端专注于表现形式上。缺点:Model和View直接打交道,耦合度高;UI交互逻辑和数据操作逻辑都在Controller中,特别臃肿,维护困难。

MVP(Model数据结构-View用户界面-Presenter业务逻辑):P层替代了C层,V层和M层的交互被P层隔断,从理论上除去了V和M的耦合。

MVP

优点:V和M切断联系,耦合度降低,分工更加明确,效率提升。缺点:所有逻辑都写在P层,导致O层更加臃肿难维护。

MVVM(Model业务模型-View用户界面-ViewModel):和MVP大致相同,它采用了双向绑定,View和Model的改变都会通过viewModel进行更新。这样把P层削弱为VM层,部分简单逻辑分给V层(例如v-for, v-if)。

MVVM

优点: 集合前两者优点并且使得VM层相比P层没有那么臃肿。

总结:我从前端角度理解:MVC模式时候,html涉及数据部分会用JAVA模版引擎渲染,前端需要写html和JAVA模版引擎语法完成视图层工作,操作DOM完成用户交互和请求数据发送。MVP模式时候,切断了数据模型和视图的联系,前端请求到数据,用JS模版引擎或字符串拼接完成html页面,操作DOM完成用户交互和请求数据发送。MVVM采用了虚拟DOM+双向绑定形成了数据驱动的模式,大幅度减少DOM操作,减轻了控制层的任务。

相关文章

  • 软件框架模式

    软件框架模式有哪些?MVC、MVP、MVVM等,接下来我们主要理解这三种模式。 简单概括:主要有三个板块:视图——...

  • MVC、MVP、MVVM概念梳理

    一、框架模式 MVC、MVP、MVVM是框架模式,而非设计模式。在软件开发领域有3种级别的重用:内部重用,即在同一...

  • 故障模式分析

    故障模式分析方法 确定功能分类框架——正向分析起点 分析软件行为信息 输出软件行为集合 分析软件错误行为 ...

  • Java EE 极简教程(四):MVC 模式

    MVC 模式 MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 模式很好理解,但也...

  • Django框架介绍

    一、 MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件...

  • Django的框架

    MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分...

  • IOS常用设计模式

    单例模式 单例模式作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中使用频率相当高,在很多应用软件和框架...

  • iOS常用设计模式

    单例模式 单例模式作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中使用频率相当高,在很多应用软件和框架...

  • 设计模式

    设计模式 好的代码离不开设计模式,我们在查看一些优秀的项目或者框架时都会找到设计模式的影子。 在软件模式中,设计...

  • 所谓的MVC和MVP框架

    MVC ( Model - View - Controller ) 是一种软件框架设计模式,其将业务逻辑,数据,界...

网友评论

      本文标题:软件框架模式

      本文链接:https://www.haomeiwen.com/subject/zonmvftx.html