MVC设计模式是什么?怎么理解?

如题所述

MVC就是
M:Model 模型
V:View 视图
C:Controller 控制器
模型就是封装业务逻辑和数据的一个一个的模块,控制器就是调用这些模块的(java中通常是用Servlet来实现,框架的话很多是用Struts2来实现这一层),视图就主要是你看到的,比如JSP等.
当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和要选择的数据,再返回去把结果输出到视图层,这里可能是进行重定向或转发等.MVC我感觉主要就是把一个软件或网站清晰地分成几部分,每一部分都实现自己的功能,当某一部分需要修改时就可以只修改这一部分,不会去修改整体,当后期维护的时候MVC的作用也是很大的,耦合度太高就会导致牵一发而动全身,开销也就会非常大了,现在的很多软件都是要很多人完成的,不过不把软件清晰的分层,不把软件模块化,大家就很难做好自己的那一块,好多人都可能做了同一部分,而且没办法整合到一起,所以MVC我感觉是一种软件架构思想,我也是新手,可能理解的不是很深,我就把我体会到的说了一下哈,希望大牛们批评更正哈!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-28

什么是MVP

View :是指显示数据并且和用户交互的层。在安卓中,它们可以是一个Activity,一个Fragment,一个android.view.View或者是一个Dialog。

Model :是数据源层。比如数据库接口或者远程服务器的api。

Presenter:是从Model中获取数据并提供给View的层,Presenter还负责处理后台任务。

MVP是一个将后台任务和activities/views/fragment分离的方法,让它们独立于绝大多数跟生命周期相关的事件。这样应用就会变得更简单,整个应用的稳定性提高10倍以上,代码也变得更短,可维护性增强,程序员也不会过劳死了~~。

为什么要在安卓上使用MVP原因一: 尽量简单

如果你还没有阅读过这篇文章,阅读它: Kiss原则(https://people.apache.org/%7Efhanik/kiss.html)。- kiss是Keep It Stupid Simple或者Keep It Simple, Stupid的缩写。

.绝大多数的安卓程序都只使用了View-Model架构。

.程序员被绞尽了复杂的界面开发中,而不是解决事务逻辑。

在应用中使用Model-View的坏处是“每个东西之间都是相互关联的”如下图:

如果上面的图解看起来还不够复杂,那么想想这些情况:每个view可能在任意的时间出现或者消失,view数据需要保存与恢复,在临时的view上挂载一个后台任务。

而与“每个东西之间都是相互关联的”的相反选择是使用一个万能对象(god object)。注:god object是指一个对象/例程在系统中做了太多的事情,或者说是有太多不怎么相关的事情放在一个对象/例程里面来完成。

god object过于复杂,他的不同部分无法重用、测试,无法轻易的debug和重构。

使用MVP

复杂的任务被分割成简单的任务。

.更小的对象,更少的bug。

.更好测试

MVP的view层变得如此简单,在请求数据的时候甚至不需要使用回调。view的逻辑变得非常直接。

原因二: 后台任务

当你需要写一个Activity,Fragment或者一个自定义View的时候,你可以将所有和后台任务相关的方法放在一个外部的或者静态的类中。这样你的后台任务就不会再与Activity相关联,不会在泄漏内存同时也不会依赖于Activity的重建。我们称这样的一个类为“Presenter”。注:要理解此话的含义最好先看懂第一个MVP示例的代码。

虽然有一些方法可以解决后台任务的问题,但是没有一种和MVP一样可靠。

为什么这是可行的

下面的图解显示了在configuration改变或者发生out-of-memory事件的情况下应用的不同部分所发生的事情。每一个开发者都应该知道这些数据,但是这些数据并不好发现。

|    Case 1     |   Case 2     |    Case 3

|A configuration| An activity  |  A process

|   change      |   restart    |   restart

---------------------------------------- | ------------- | ------------ | ------------

Dialog                                   |     reset     |    reset     |    reset

Activity, View, Fragment                 | save/restore  | save/restore | save/restore

Fragment with setRetainInstance(true)    |   no change   | save/restore | save/restore

Static variables and threads             |   no change   |   no change  |    reset

情景1:configuration的改变通常发生在旋转屏幕,修改语言设置,链接外部的模拟器等情况下。要知道更多的configuration change事件请阅读:configChanges(developer.android.com/reference/android/R.attr.html#configChanges)。

情景2:Activity的重启发生在当用户在开发者选项中选中了“Don't keep activities”(“中文下为 不保留活动”)的复选框,然后另一个Activity在最顶上的时候。

情景3:进程的重启发生在应用运行在后台,但是这个时候内存不够的情况下。

结论

现在你可以发现,一个拥有setRetainInstance(true)的Fragment并没有带来帮助 - 我们还是要保存和/恢复这种fragment的状态。因此我们可以去掉可保持Fragment的情景,把问题简单化。Occam's razor(https://en.wikipedia.org/wiki/Occam%27s_razor)

本回答被网友采纳
第2个回答  2018-01-05
MVC是Model-View-Controller的简写。
M:model 应用的业务逻辑(通过JavaBean,EJB组件实现)
V:View 应用的表示面(由JSP页面产生)
C:Controller 提供应用的处理过程控制(一般是一个Servlet),
通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。

mvc模式是什么
MVC模式是一种软件设计模式,它强制将应用程序的输入、处理和输出分开,以便更好地组织和管理代码。MVC代表模型(Model)、视图(View)和控制器(Controller),这三个组件各自承担不同的职责,共同构成了一个完整的应用程序架构。首先,模型(Model)是MVC模式的核心部分,它负责处理应用程序的数据和业务逻...

mvc设计模式怎么理解?
mvc设计模式解释:出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。1、MVC、是模型视图控制器的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户...

mvc是什么意思
MVC是软件架构中的一种设计模式,全称为Model-View-Controller。MVC是软件架构中的Model-View-Controller设计模式。关于MVC的详细解释如下:MVC不是一个复杂的概念,它主要用于区分应用程序的不同关注点,从而增强应用程序的可维护性和可复用性。MVC模式将应用程序分为三个基本组成部分:Model 模型是应用程序...

mvc是什么意思
mvc是一种软件设计模式。MVC的目的是将应用程序的业务逻辑,用户界面和用户输入分离开来,从而提高代码的可维护性和可重用性,它将应用程序分成三个主要组成部分:模型,视图和控制器。M是指模型,V是视图,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

什么是MVC框架?
MVC(Model-View-Controller)架构是一种软件设计模式,它将应用程序划分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种分离有助于简化代码结构,提高代码的可维护性和可扩展性。1、视图(View)视图是用户界面的抽象表示,通常对应于Web应用中的HTML页面。它负责展示数据给用户,...

什么是MVC设计模式
“MVC”模式即是:“Model-View-Controller”模式。在这种模式中,通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑。在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将...

什么是mvc
MVC是软件架构中的一种设计模式,即模型-视图-控制器。下面是详细的解释:MVC架构模式广泛应用于各种软件系统中,特别是那些需要处理数据和与用户交互的系统。在这种模式中,应用程序被分为三个基本组成部分:1. 模型:这是应用程序的核心部分,负责处理数据。它包含了数据和相关的业务逻辑。模型通常是应用...

MVC设计模式是什么?怎么理解?
MVC就是 M:Model 模型 V:View 视图 C:Controller 控制器 模型就是封装业务逻辑和数据的一个一个的模块,控制器就是调用这些模块的(java中通常是用Servlet来实现,框架的话很多是用Struts2来实现这一层),视图就主要是你看到的,比如JSP等.当用户发出请求的时候,控制器根据请求来选择要处理的业务逻辑和...

mvc模式是什么意思
MVC是一种常用的软件设计模式,它被广泛应用于Web开发中。MVC的英文全称是Model-View-Controller,翻译为模型-视图-控制器。MVC的主要目的是将应用程序分为三个部分。模型层(Model)是代表数据和应用程序运作的行为。视图层(View)是应用程序用户界面的呈现方式。控制器层(Controller)是控制应用程序行为...

MVC设计模式是什么?怎么理解?
View:是指显示数据并且和用户交互的层。在安卓中,它们可以是一个Activity,一个Fragment,一个android.view.View或者是一个Dialog。Model:是数据源层。比如数据库接口或者远程服务器的api。Presenter:是从Model中获取数据并提供给View的层,Presenter还负责处理后台任务。MVP是一个将后台任务和activities\/...

相似回答