对于(MVC 、MVCS、MVVM)的理解

MVC

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
M层,模型层,程序应用功能的实现,负责数据数据管理及数据生成
V层,视图层,负责输出,处理如何调用模板,资源文件
C层,控制器层,负责根据请求决定调用的界面,以及处理数据

客户端请求项目的控制器,如果执行过程中需要用到数据,控制器就会到模型中获取数据,再将获取到数据通过视图显示出来。

1、原理:

客户端通过v层发送请求到C层,控制器根据请求调用M层,处理数据之后返回控制器,调用相对应的V层 返回客户端。

2、作用:

将代码进行分层分类。主要是为了解决web开发中的分离开发与设计工作,使其工作相对独立,因为目录结构比较清晰,所以便于网站以后的维护与扩展。

3、优点:

耦合性低:视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
生命周期成本低:MVC使开发和维护用户接口的技术含量降低。

可维护性高:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

4、缺点:

不适合中小型规模的应用程序:花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
增加系统结构和实现的复杂性:对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

视图与控制器间的过于紧密的连接:视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

MVCS

M-Model:数据结构表示 ,读取本地数据,处理弱业务。
V-View:展示数据,处理非逻辑交互事件。
C-Controller:处理主要业务逻辑,处理交互事件,协调V-M数据流。
S-Store:负责数据的存储,数据本地持久化。

MVCS是基于MVC衍生出来的一套架构方案,概念来说,拆分的部分是Model部分,拆出来一Store,用来专门负责数据存取。

从上面的分工可知C,V同MVC架构是完全一样的,只有M的数据存储任务被分离了出来。即:S分担了M的数据管理任务,那么M和S其实都是数据管理的逻辑范畴了。
一句话概括:(M+S):管理数据, C:处理数据, V:展示数据。

MVVM

MVVM为了解决前端的响应式编程而生,由于前端网页混合了HTML、CSS和Javascript,而且页面众多,代码的组织维护难度复杂,所以东莞过ViewModel实现View和Model的双向绑定。

M-model: 数据结构表示、读取本地数据、写数据到本地、处理弱业务。
V-View:展示数据、处理非逻辑交互事件。
C-Controller:处理交互事件、协调V-M数据流。
VM-ViewModel:处理主要业务逻辑。

从上面的分工可知,VM分担了C中的数据加工任务,将业务处理放到了ViewModel中,其他的M,V同MVC架构完全一样。

一句话概括:M:管理数据, (C+VM):处理数据, V:展示数据。

MVVM与MVC最大的区别就是:它实现了View和Model的自动同步,也就是当Model的属性改变时,我们不用再自己手动操作Dom元素,来改变View的显示,而是改变属性后该属性对应View层显示会自动改变

总结:

mvcs mvvm 都是基于mvc框架 延伸出的框架结构。熟悉mvc框架之后另外两个都是很容易上手的。而任务的分配方法以mvc任务分配方案为基础,按一定原则进行个性化分配。
1.保留当前角色的主要功能,拆分次要功能。
2.弱业务功能放到Model中,尽量不要放到Controller里去。
3.拆分出去的业务功能尽量封装成可复用组件、对象或协议。
4.控制好拆分粒度,调用接口少参或无参。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值