MVC构架模式

来源:互联网 发布:win7内存优化软件 编辑:程序博客网 时间:2024/05/21 11:10

MVC构架模式

1.MVC是什么?
MVC是一种软件的架构模式,最初起源项目后端.

M(Model)模型: 负责数据库的模型和数据的处理方法(curd),将实现各个功能的代码独立开来,便于后期维护.

V(view)视图: 负责用户界面和交互,显示数据到页面上

C(controller)控制器: 负责接收用户请求,处理用户数据,读写数据库,生成结果.(中转,连接作用)
所有通信都是单向的。
所有通信都是单向的。

优点:     1、开发人员可以只关注整个结构中的其中某一层;     2、可以很容易的用新的实现来替换原有层次的实现;     3、可以降低层与层之间的依赖;     4、有利于标准化;     5、利于各层逻辑的复用。
缺点:     a 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。    b 视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。    c 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

2.另外的两种引申模式MVP , MVVM
1) MVP

MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。1. 各部分之间的通信,都是双向的。2. View 与 Model 不发生联系,都通过 Presenter 传递。3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

这里写图片描述

2) MVVM

MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。AngularEmber 都采用这种模式。

这里写图片描述

原创粉丝点击