`

客户端MVC

    博客分类:
  • Flex
阅读更多

大多数开发者(尤其是Web应用开发者)已经非常熟悉人机交互系统开发中关于MVC(模型/视图/控制器)的概念,那么用Flex开发企业应用时,MVC模型是否依然适用呢?在Flex中该如何实现MVC呢?接下来我们就一起探讨一下这些问题。

很显然,在Flex开发中,MXML文件天生就是视图,客户端所保持的状态是模型。然而,什么是控制器呢?

在回答这个问题之前,我们首先回顾一下MVC中控制器的作用:“在MVC模型中,

控制器控制模型状态变化的传播,确保用户界面与模型之间的对应联系,保证界面能够反映正确的模型状态,控制器接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。将模型、视图、控制器进行分离,使设计和使用都具有很大灵活性。但是,在现实中,视图和控制器的功能通常是紧密地联系在一起的。控制视图工作的输入事件通常都是与视图的构成相关的。在现实界面设计环境中,界面操作事件及其处理都是与界面形式设计紧密关联的。在这种情况下,把视图和控制器分离开,就给分析和设计带来了不便,而且运行的效率低。”

根据上面对“控制器”职责的论述,我们认为,Flex中的控制器应该与视图结合在一起,也就是说属于控制器的代码应当写在MXML文件中。为此,我们形成了比较朴素的客户端MVC开发思路:

开发人机界面时,写一个MXML文件和一个AS类文件,二者名称相同但是扩展名不同。MXML文件作为视图和视图控制器(视图跳转和弹出子视图的代码放在MXML文件中),AS类文件作为模型。模型上定义视图所需要的数据,以及数据的处理逻辑(比如获取远程数据,对数据进行排序和过滤等)。在MXML视图上建立对模型的单向引用,然后视图上的控件通过绑定模型上的数据来实现展示模型数据的目的。而模型无需知道视图,于是当“视图”界面上的数据展示和操作控件发生变化时,不会影响到模型部分。当用户操作界面发生请求需要处理数据时,MXML上的响应控件事件的处理函数(属于控制器的代码)调用模型上的方法来改变数据,改变后的数据通过绑定机制(属于控制器的功能,由Flex框架提供)自动地刷新MXML视图。

这样做的最大好处就是简单易行,易于培训。除此之外,将视图和模型分离,当视图上的控件发生变化时不会影响模型上的数据处理。这种思路已经在我们的项目中多次实践,取得了很好的效果,下面就举一个项目中的实际例子来帮助读者更好地理解这种开发思路。

 

分享到:
评论

相关推荐

    JavaS11cript客户端MVC框架用法.docx

    。。JavaS11cript客户端MVC框架用法.docx

    JavaS11cript客户端MVC框架用法.pdf

    。。JavaS11cript客户端MVC框架用法.pdf

    JavaS11cript 客户端 MVC 框架调查.pdf

    。。JavaS11cript 客户端 MVC 框架调查.pdf

    JavaS11cript 客户端 MVC 框架调查.docx

    。。JavaS11cript 客户端 MVC 框架调查.docx

    基于SpringMVC开发MapXtreme瘦客户端例子

    **基于SpringMVC开发MapXtreme瘦客户端例子** 在现代Web应用开发中,SpringMVC作为Spring框架的一部分,提供了一种强大的Model-View-Controller(MVC)架构模式实现方式,使得开发者能够构建可扩展且易于维护的Web...

    MVC设计模式在客户端的应用.pdf

    ### MVC设计模式在客户端的应用详解 #### 一、引言 MVC(Model-View-Controller)设计模式是一种广泛应用于用户界面设计的经典架构模式。它将应用程序或其部分明确地划分为三个相互独立且功能清晰的组件:模型...

    Asp.Net MVC之客户端校验

    在Asp.Net MVC框架中,客户端验证是一种增强用户体验的有效手段,它允许在用户提交表单前在浏览器端进行数据验证,避免了不必要的服务器往返请求,从而提高了应用性能。本课程将深入探讨Asp.Net MVC中的客户端验证...

    SignalR服务端与客户端的消息传递

    SignalR服务端与客户端的消息传递 web建立服务端(SignalR.1.0.1) winform制作的客服端(SignalR.Client.1.1.2),版本是net 4.0 的,还在用net 4.0 以下的朋友就不用下载了,SignalR 是建立在 net4.0 级以上

    asp.net mvc 客户端验证

    ### ASP.NET MVC 客户端验证详解 #### 一、引言 在现代Web应用程序开发中,对用户输入的有效性和合法性进行验证是非常重要的步骤之一。ASP.NET MVC框架提供了丰富的工具和特性来帮助开发者轻松实现这一目标。特别...

    Unity3D客户端PureMVC框架视屏讲解

    Unity3D客户端PureMVC框架视屏讲解是一个深入解析如何在Unity3D环境中应用PureMVC框架的教学资源。PureMVC是一种轻量级、模块化的前端框架,它为游戏开发提供了一种组织代码的结构,使得项目更易于维护和扩展。在...

    cloak:客户端 JavaScript MVC 框架

    Cloak.js 是一个客户端 MVC Web 应用程序框架。 受到极大启发,Cloak.js 有许多相似的特性,对于熟悉 Backbone.js 的人来说应该很容易学习。 Cloak.js 是围绕 CommonJS 模块 API 设计的。 var View = require ( '...

    rong framework 1.0

    MVC集成(ControllerEngine) MVC三层模型快速入门 控制器 去除magic_quotes 路由 数据库介绍 Rong_Db类连接使用mysql数据库 Rong_Db连接到sqlite 数据库模型 分页 加密 SwapBit换位 PHP模板类 Wudimei...

    通过MVC模式将Web视图和逻辑代码分离.doc

    **客户端MVC示例** 在给出的例子中,JavaScript代码和HTML混杂在一起,这不符合MVC原则。通过将JavaScript代码分离到单独的.js文件中,如`fun.js`,可以初步实现视图和逻辑的分离。但是,`onclick`事件仍然将视图和...

    PureMVC客户端代码

    PureMVC是一个开源的、轻量级的、模型-视图-控制器(Model-View-Controller,MVC)框架,适用于构建富客户端应用程序,尤其在Adobe Flex和ActionScript环境中广泛使用。该框架的设计灵感来源于经典的MVC模式,旨在...

    asp.net 平台下基于Ajax的MVC构架模式

    2. **客户端MVC模式实现**: - **模型**:通常包含在客户端JavaScript中,负责管理数据状态。 - **控制器**:处理用户交互,触发Ajax请求。 - **视图**:由HTML和CSS构成,负责显示数据。 3. **Ajax与MVC模式的...

    车辆API

    产品特点REST API探索主要的HTTP动词和功能Hateoas 使用ControllerAdvice自定义API错误处理Swagger API文档HTTP Web客户端MVC测试自动模型映射使用说明待办事项实施TODOs的内CarService.java和CarController.java...

    用asp.net MVC 中的方法 添加客户端菜单

    通过以上步骤,你就可以在ASP.NET MVC应用中创建动态的客户端菜单了。这种方法不仅使代码保持整洁,还使得菜单的维护和更新变得更加简单。此外,你还可以根据需求进一步扩展此方法,例如添加子菜单、权限控制等特性...

Global site tag (gtag.js) - Google Analytics