前端中容易提起的mv* 框架:
mvc(model-view-controller),mvp(Model-view-presenter),mvvm(model-view viewModel)
首先要知道最基本的mvc模式:
mvc是三个单词的缩写,即:
模型:model,主要是数据的保存(可以用dao)-----domain-specific data
视图:view,主要就是用户界面,人能看到的位置。(可以用html,jsp)-----ui,represents current model state
控制器:controller:包括业务逻辑上的问题(可以是servlet,struts,webwork)-----makes decision for the view
mvc之间的通信的单向的。当用户接收到指令的时候可以分成两种情况,view接受指令或者是controller接受指令。
view和model是观察者模式,就是说view事先在model上注册,观察model上的数据变化。
view和controller是策略模式。用户可以直接的向controller发送指令,再由controller发送给view.
mvp:mvp模式是mvc衍生的就是把controller改成了presenter,正因为这个改变也改变了通信方向。
model和view的作用基本上是不变的,presenter是协调器,主要是用于协调model和view的交互,正因为这样,各个部分之间的通信是双向的,view和model之间不联系而是靠着presenter传递。在mvc中业务逻辑大多部署在view上,controller非常薄就是起到了路由的作用。而在mvp中view不部署任何的业务逻辑,也没与主动性,即passive view,所有主要的逻辑都部署在presenter上。
mvvm:将presenter该名为viewmodel。和mvp是差不多的。but他采用了双向数据绑定(data-binding)。双向数据绑定的框架有很多,像是vue,angular,ember。。。