`
ictch
  • 浏览: 135399 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

谈谈MVC模式

    博客分类:
  • Java
阅读更多

1.

如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论。

MVC模式就是架构模式的一种,它对我的启发特别大。我觉得它不仅适用于开发软件,也适用于其他广泛的设计和组织工作。

下面是我对MVC模式的一些个人理解,不一定正确,主要用来整理思路。

2.

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。

这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。

3.

bg2007110801.jpg

我用Windows的计算器小程序为例,解释一下MVC模式,虽然它不一定使用这个模式编写。

在这个计算器程序中,外部的那些按钮和最上面的显示条,就是"视图层",那些需要运算的数字就是"数据层",执行加减乘除的那些内部运算步骤就是"控制层"。每一层执行不同的功能,整个程序的结构非常清楚。

如果我们扩大一点想象,就会发现,很多程序本质上都是这种模式:对外提供一组触发器(本例中是按钮),然后执行一些内部操作,最后返回结果。因此,MVC模式的应用是非常广泛的。

4.

bg2007110802.jpg

在我看来,不仅编写程序可以用MVC模式,家用电器也可以用。

以家用微波炉为例,可以将它也理解成三层结构。最简单的情况下,微波炉的操作用两个转盘实现,一个控制温度,另一个控制时间。这两个转盘就是"视图层"(view),而其内部的微波产生装置则是"数据层"(Model),这里的"数据"需要理解成"核心功能"。至于将用户通过转盘输入的信息,转换成对微波产生器的操作,则用"控制层"来实现。

如果每一层都是独立的,那么微波炉外部更换一个新潮的外壳,或者内部更换更大功率的微波产生器,完全可以在不更改其他层的情况下实现。这就是MVC模式的优势。

5.

再进一步,如果将MVC模式解释成"外观"、"机制"和"功能/数据"这三层结构,那么很多人类组织也可以通过MVC模式架构。

比如一家商场,完全可以分成三部分。一部分是仓库,负责提供商品,这是"功能层"(或者"数据层");另一部分是零售铺面,负责销售商品,这是它的"外观层";两者之间就是"机制层",包括柜台和仓库之间一切互动的机制。

这样区分以后,这个商场的结构就变得非常清楚,可以针对不同的层进行优化,提高效率。

6.

公司、政党、政府、医院、学校等等,这些组织不管是盈利性还是非盈利性的,都可以从MVC模式的角度,进行架构,由一个个执行特定功能、可重复使用的模块组成。

我在想,如果人类社会都是模块化结构,那会是怎样的情景?

(完)

分享到:
评论

相关推荐

    谈谈MVC和MVVM1

    MVC 和 MVVM 模式详解 在软件开发中,MVC(Model-View-Controller)和 MVVM(Model-View-ViewModel)是两个非常重要的设计模式,它们都是为了解决软件系统中的耦合性和可维护性问题而设计的。在本文中,我们将详细...

    我使用oops概念并遵循MVC模式,在php中执行了crud操作.zip

    接下来,我们谈谈MVC模式。Model负责处理数据和业务逻辑,它是系统的核心。View是用户界面,用于展示数据。Controller作为模型和视图之间的桥梁,接收用户请求,处理后与模型交互,再更新视图。这种分离使得开发者...

    extjsDemo(store grid form mvc模式等一些demo)

    最后,我们谈谈MVC模式。MVC是软件设计中的一个经典模式,它将应用分为模型(Model)、视图(View)和控制器(Controller)三个部分,使得代码结构清晰,易于维护。在ExtJS中,MVC被广泛应用于构建大型复杂应用。...

    mvc模式过滤器简单登录

    在这个“mvc模式过滤器简单登录”项目中,我们看到开发者使用了这种模式来构建一个与MySQL数据库交互的登录系统,并且应用了过滤器技术以增强系统的安全性。 首先,让我们深入理解一下MVC模式: 1. **模型(Model...

    基于servlet+jsp+mysql+MVC模式的学生选课管理系统.zip

    然后,我们来谈谈MVC(Model-View-Controller)设计模式。这是一种常用的设计模式,用于分离应用程序的数据模型、用户界面和控制逻辑。Model代表数据模型,负责业务对象的处理;View负责显示数据,即用户界面;...

    用Struts做的简单登陆

    接着,我们来谈谈MVC模式。在Struts中,Model通常由JavaBeans(也称为POJOs,Plain Old Java Objects)组成,它们包含了业务逻辑和数据。在这个例子中,可能会有一个`UserBean`,它包含用户名和密码属性,以及对应的...

    谈谈关于JavaScript 中的 MVC 模式

    在JavaScript中,MVC模式可以帮助开发者更好地组织代码,提高可维护性和可扩展性。本文将通过一个可编辑项目列表的示例,深入探讨JavaScript中MVC模式的实现。 ### 模型(Model) 模型是应用程序的核心,负责存储...

    .net 三层/MVC 登陆例子

    接下来,我们谈谈MVC(Model-View-Controller)模式。MVC是一种流行的设计模式,用于分离应用程序的不同关注点: 1. **模型(Model)**:代表应用的数据和业务逻辑。在这个案例中,可能有一个MODEL类,封装了用户...

    谈谈JavaScriptMVC模式共3页.pdf.zip

    JavaScript MVC模式是Web开发中的一种架构模式,它用于组织和管理复杂的前端应用。MVC,即Model-View-Controller,是一种设计模式,旨在分离应用程序的数据层(Model)、用户界面层(View)和控制逻辑层(Controller...

    EasyUI+C#mvc

    总结来说,“EasyUI+C#mvc”是一个很好的起点,帮助初学者理解MVC模式和如何结合前端库构建Web应用。通过实践这个项目,你可以学习到C# MVC框架的基本用法,以及如何利用EasyUI快速创建用户界面。同时,这也是一个...

    sql.rar_ASP.NET MVC_MVC 数据库_mvc_智能表单

    MVC模式鼓励分离关注点,将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图负责展示用户界面,而控制器则作为两者之间的桥梁,处理用户请求并决定...

    MVC、MVP和MVVM

    本示例着重探讨了三种常见的架构模式:MVC(Model-View-Controller)、MVP(Model-View-Presenter)和MVVM(Model-View-ViewModel),以及DataBinding的基本运用。下面将对这些知识点进行详细解释。 首先,我们来...

    基于GXT的RPC与MVC实现登录和退出功能

    首先,让我们了解MVC模式。MVC是一种软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑;视图负责展示数据;控制器则作为模型和视图之间...

    实验5 过滤器、监听器以及MVC + DAO设计模式应用开发实验源代码(1-4).rar

    然后,我们来谈谈MVC设计模式。MVC是一种广泛应用于Web开发的分层架构模式,将业务逻辑(Model)、视图展示(View)和控制逻辑(Controller)分离。Model负责管理应用程序的数据和业务逻辑,View负责呈现数据,而...

    dotnet mvc框架学习

    MVC模式是一种设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,视图则用于展示数据,而控制器接收用户输入并协调模型和视图之间的交互。在.NET...

    数据源和转换器和自定义MVC

    自定义MVC意味着根据项目需求对标准MVC模式进行扩展或调整。例如,你可能会创建自己的控制器拦截器来处理全局的请求预处理或后处理逻辑,或者定制模型层来更高效地处理数据。在Spring框架中,自定义MVC可以通过编写...

    spring3mvc所需jar包

    Spring 3 MVC 是一个强大的Java Web开发框架,用于构建基于模型-视图-控制器(MVC)模式的应用程序。这个框架极大地简化了处理HTTP请求、数据绑定、验证、国际化以及与后端服务交互等任务。在Spring 3版本中,引入了...

    基于spring+spring mvc+hibernate的智能农业信息管理系统

    Spring MVC是Spring框架的一部分,专门用于构建Web应用,它提供了模型-视图-控制器(Model-View-Controller,MVC)的设计模式,使得业务逻辑与视图层、控制层分离,使得代码结构更加清晰。 Hibernate则是一款强大的...

    asp.net MVC3+IBATIS.NET 实例

    ASP.NET MVC(Model-View-Controller)是一个用于构建动态网站的开源框架,它遵循分层架构模式,强调代码分离和测试驱动开发。MVC3是这个框架的一个版本,提供了许多改进,如增强的 Razor 视图引擎、更好的类型安全...

Global site tag (gtag.js) - Google Analytics