深入理解MVC模式

一,什么是MVC模式

该模式是一种软件设计典范,他把软件系统划分为三个基本部分:模型层(Model)、视图层(View)、控制器(Controller)

*Model(模型)表示应用程序核心(比如数据库记录列表)

*View(视图)显示数据(数据库记录)

*Controller(控制器)处理输入(写入数据库记录)

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据

View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的

Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

二,MVC模式的目的

第一,其目的是实现程序的动态设计,使后续程序的修改和扩展简化,并且能够使程序的某一部份的重复利用成为可能

第二,有助于管理复杂的应用程序,我们可以在一个时间专门关注一个方面,同事也让应用程序的测试更加容易

第三,简化了分组开发,不同的人员可同时开发视图、控制器逻辑、模型逻辑,加快了开发速度

三、MVC工作原理图

注:什么是Javabean?

JavaBean:它是一个简单的Java类。这个类中拥有get或set方法即可,但要求这个类必须有一个公开的空参数的构造函数。并拥有一些简单的逻辑参与。但是在实际应用中,经常只需要类中添加get或set方法的简单Java类。在开发中经常把这样的类称为JavaBean对象或者实体类对象。这样的类开发中经常书写在domain或者beans包下。举例如下:

public class User {

private String id;

private String username;

private String password;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

}

四,MVC模式的优点

第一,开发人员可以只关注三层中的其中的某一层

第二,可以很容易的用新的实现来替换原有层次的实现,可维护性提高了

第三,可以降低层与层之间的依赖,耦合性降低了

第四,有利于标准化和软件工程化管理

第五,利于各层逻辑的复用,重用性提高了

五,MVC模式的缺点

第一,增加了系统结构和实现的复杂性

对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

第二,不适合小型或者中等规模的应用程序

花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失

第三,视图与控制器连接的过于紧密

视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

第四,视图对模型数据的低效率访问

依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

时间: 2024-10-27 12:06:34

深入理解MVC模式的相关文章

[ASP.NET MVC 小牛之路]01 - 理解MVC模式--转载

PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各位园友的斧正. 本文目录 理解一般意义上的MVC模式 MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为以下三个基本部分: 模型(Model):模型用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法.“模型”有对数据直接访问的权力,例如对数据库的访问.“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会

ios 深刻理解MVC模式—代理方法

在oc中MVC模式得到广泛应用,所谓MVC,即模型Model,视图View,控制器Controller 控制器通过模型数据控制视图,而代理方法则是控制器控制视图的所使用的方法. 使用代理所需要满足的条件: 1.代理协议:里面声明了代理方法 2.视图View定义满足代理协议的代理属性,例如 @property(nonatomic,weak)id<UITableViewDelegate>delegate; 3.给View提供一个或几个方法,方法内View的代理view.delegate 调用它的代

理解MVC模式

MVC是Model-View-Controller的简称,即模型-视图-控制器. MVC是一种设计模式,它强制性地将应用程序的输入.处理.输出流程按照模型.视图.控制器的方式进行分类,并被分成3层: 模型层.视图层.控制层. 1.视图 代表用户交互界面. 视图向用户显示相关的数据,并能接收用户输入的数据,但是它并不进行任何实际的业务处理. 视图可以向模型查询业务状态,但不能改变模型. 视图还能接收模型发出的数据更新事件,从而对用户界面进行同步更新. 2.模型 模型是业务流程/状态的处理以及业务规

MVC 模式——第3章

在深入到 ASP.NET MVC 框架的细节之间,最好熟悉 MVC 的设计模式及其背后的思想.良好地理解 MVC 背后的内容,有助于在阅读本书的过程中将该框架的特性放到相关的情境之中. 3.2 理解 MVC 模式 从高级术语上说,MVC 模式意味着一个 MVC 应用程序将被分离成至少3个部分. · 模型(Model):含有或表现用户进行操作的数据. 模型可以是简单的视图模型:它们只表现视图与控制器之间传递的数据: 也可以是域模型:它包含业务领域的数据,以及处理这些数据的操作.转换和规则. · 视

为什么要使用MVC模式,MVC模式的优势有哪些?请写出你熟悉的MVC轻量级框架名称。

MVC就是常说的:模型(Model),视图(View)和控制Controller) 它把业务处理和Jsp页面分开了.而以前的Jsp页面是把所有的代码都写在Jsp页面中,那样不利于维护 MVC模式的目的就是实现Web系统的职能分工. MVC模式的好处: 1.各施其职,互不干涉 在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码. 2.有利于开发中的分工 在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工.网页设

第3章 MVC模式

3.2 理解MVC模式 模型(Model):表示用户使用的数据. 1.视图模型(View Model),只表示视图和控制器之间传递的数据,比较简单: 2.领域模型(Domain Model),表示业务领域的数据,以及处理这些数据的操作.转换.规则. 视图(View):用于把模型的某些部分渲染成用户界面(UI). 控制器(Controller): 1.处理传入的请求: 2.执行模型上的操作: 3.选择渲染给用户视图. 重点: 在域模型设计阶段,一定要进行仔细的规划和设计:域中的每一个类.属性.操作

[转载]WIKI MVC模式

MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能.除此之外,此

四:MVC模式

理解MVC模式 模型(Model):含有或表现用户进行操作的数据,模型可以是简单的视图模型,他们只表现视图和控制器之间的数据传递.也可以是域模型,包含业务领域的数据,以及处理这些数据的操作,转换和规则. 视图(View):将模型的某些部分渲染成用户界面 控制器(Controller):处理传入请求,执行模型操作,渲染给用户视图. 模型是程序工作的定义,不涉及UI也不涉及请求处理. MVC架构的每一部分都有良好的定义和自包含,这称为关注分离. 域模型 MVC最重要的部分是域模型,对于应用程序必须支

重构、重载和重写,mvc模式大概理解

重构重写和重载的区别: 重写:1.父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 .方法重写又称方法覆盖. 2.若子类中的方法与父类中的某一方法具有相同的方法名.返回类型和参数表,则新方法将覆盖原有的方法. 3.子类函数的访问修饰权限不能少于父类的: 重载: 1.方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数.重载是一个类中多态性的一种表现. 2.重载的时候,方法名要一样,但是参数