目录
一、MVC框架
1、MVC概念
MVC全名是Model View Controller,是模型(Model)-视图(View)-控制器(Controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
2、角色说明
类型 | 定义 | 作用 | 使用方式 |
M(Model) | 模型层(表示数据模型) | 业务逻辑/数据存储 是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。 |
写成“外观类(facade class)” |
V(View) | 视图层 | 展示界面,接收用户输入 是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。 |
通过XML文件描述界面,即布局文件,Activuty |
C(Controller) | 控制层 | 连接V层、M层、完成View层与Model层的交互。业务逻辑处理 是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。 |
Activity |
3、模式说明
View层接收用户的输入:
(1)需要UI变化操作(不涉及业务数据调用),直接与Controller交互(紫色线条)
(2)需要修改Model层的数据,需要通过Controller才能修改(蓝色线条)
(3)View层也可以直接更新Model的数据而不必通过Controller(黑色线条)
(4)Model里的数据发生变化时,如果需要修改UI,则需要通过Controller对View通知更新UI(红色线条)
MVC简单的框架模式图
4、优点
耦合性低
由于视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDBMS数据源到LDAP,只需改变模型即可。一旦正确的实现了模型,不管数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以