网站架构模式用mvc还是mvp
没有后端基础如何理解MVC、MVP和MVVM,可以以JavaScript举例吗?
没有后端基础如何理解MVC、MVP和MVVM,可以以JavaScript举例吗?
谢谢邀请!
什么是MVC以及它的作用?
MVC是一种分层架构模式,M代表数据模型以及相关数据处理逻辑,V就是用户界面,C代表控制器(可以认为它是逻辑处理路由)!通常的情景是用户操作了可视界面(V),用户的信息传递给了控制器,控制器把用户指令分发给对应的数据层(M),最终数据层处理好数据后,将最新的数据反映到界面上!MVC的作用是将以前杂乱的代码分层解耦,使得代码具有更好的维护性!
如何理解MVC?
在后端的知识体系中,MVC更容易理解!不过在前端中,我们有nodejs可以做后端,我们就拿nodejs举例!
我们把用户操作的界面看作View层,用户操作浏览器后,请求来到服务端,路由将请求交给Controller,Controller调用对应的服务处理数据,数据处理后返回响应!这里我将Router和Controller放在一起,Service和db放在了一起!这样代码调理清晰,对代码增删改查都会非常方便!
如果仅仅是浏览器端的逻辑,也可以采用MVC架构,例如Backbone.js,方式如下:
1、dom 是 View层
2、对dom的事件绑定,可以看作Controller
3、将原始数据和数据的操作封装成数据模型(对象)
4、Controller调用不同的数据模型处理数据
5、数据处理完成后,采用观察者模式及时更新View
什么是MVP、MVVM?
其实MVP和MVVM是MVC的变种,Model和View没有直接的联系了,而是通过中间的那一层进行桥接!目前市场比较流行MVVM模式,比如VUE、REACT等!
总结
不管是哪一种架构模式,其实都是为了方便我们开发和维护,个人认为没有严格的标准去限定有多少层以及层与层的联系,只要适用于业务就是好的架构模式!
原生php和thinkphp这些框架有什么区别?
thinkphp等框架是 面向对象的mvc架构 mvc是目前主流的开发模式 框架是自己已经做好了这种架构开发者只需要写业务代码就可以了 而且框架一般会把一些常用的类提供给开发者 比如图片处理 分页类 验证码类 等等 框架还会把sql语句进行简化 这些都是在提高开发者的开发效率 而如果使用原生php 开发者需要自己做mvc的架构 自己做单入口 开发效率以及代码的可维护性都是不如直接使用那些主流的mvc框架