MVC模式是指软件系统可以分为三部分。如图所示:视图(View):用户界面。控制器(Controller):业务逻辑。模型(Model):数据存储。三者的关系如图:解释三者之间的通信:View向Controller发送指令完成业务逻辑后,要求Model改变状态。模型向视图发送新数据,用户获得反馈。所有通信都是单向的(逆时针方向)。MVP模式将Controller更名为Presenter(主要业务逻辑),同时改变通信方向。如图:三者之间的连接:各部分之间的通讯是双向的(顺时针方向)。View和Model之间没有联系,都是通过Presenter传递的。View非常瘦,不部署任何业务逻辑。叫做“被动视图”(PassiveView),也就是没有主动性,而Presenter很厚,所有的逻辑都部署在那里。MVVM模式将Presenter更名为ViewModel,与MVP模式基本相同,如图:与mvvm唯一不同的是它使用了双向绑定(data-binding):View中的变化是自动反映在ViewModel中,反之亦然。Angular和Ember都遵循这种模式。
