写点什么

用于 Altair Lunar Lander 的 GEMVC ActionScript 框架

  • 2008-12-10
  • 本文字数:1142 字

    阅读完需:约 4 分钟

GEMVC ActionScript 框架在 Johnson Space Center 的 Altair Lunar Lander 项目中被用来开发 Flex 应用。Christopher Dean 是一位解决方案架构师,他创建了 GEMVC,同时他还是 Altair Lunar Lander 项目的可扩展信息模型(XIM)程序的首席科学家。InfoQ 采访了 Dean 以深入了解 GEMVC。

根据 Dean 所述,GEMVC 是一套支持模型——视图——控制器(MVC)模式的 ActionScript 类。但它并不强制要求你使用其全部,你可以选取你想用的那部分来用。它由一个模型及一个控制器框架构成,同时还有一个服务 / 网关层。视图就是 Flex MXML 文件本身。

当被问到为何没有使用现有的某个框架时,Dean 说到:

在创建好自己的服务层后,我对 Adobe Labs 的 Cairngorm 进行了调研。我真的不想改变它,因为我喜欢它的工作方式,这样我就决定围绕它来开发一个 MVC 框架。此外,我对 Cairngorm 只有一个主控制器并且所有东西都需要通过单例来访问的方式不太满意,因为这样只允许存在唯一一个模型及控制器。我要对我的代码进行模块化,这样就可以有单独的控制器来处理应用的不同部分了。理论上每个 Flex 组件都可以拥有自己的控制器。最后,这只是一个风格上的问题。

Dean 解释了 GEMVC 与现有的一些框架如 Cairngorm 之间的一些主要差异:

GEMVC 框架使用的是 Flex 的分发机制而不是自己的。我喜欢这样,因为我们可以用混合的方式来执行事件。在 Cairngorm 中,所有的改变都必须通过模型实现。在大多数情况下这没什么问题。然而有时由于事件的发生,你想对应用进行控制,这甚至可能需要调用现有组件的 ActionScript 方法。借助于 GEMVC,你可以轻松完成这件事而无需知晓组件的路径所在。你只要知道处理该事件的组件的标识符即可。

Dean 说到,除了上面提到的 Altair Lunar Lander 程序外,GEMVC 还被用在 Astromaterials Research 和 Exploration Science Directorate 的 Stardust 项目中。该程序管理着星团探测器所返回的所有样品。

关于未来,Dean 说到:

关于未来,在 riaforge 博客上已经有不少人提出了自己的观点,但我想说的是对于 GEMVC 来说,有三个东西马上就要到来了。 1. 在服务层支持生产者,消费者功能。该功能已经完成了,其发布包随时都可以更新。
2. 支持使用 MXML 标签在 MXML 文件中指定控制器来代替单独的 ActionScript 文件。这是一个风格上的问题,因为相对于 ActionScript,有些人更喜欢用 MXML。
3. 分等级控制器的改进。当前尚没有一种方法可以做到让某个组件控制器处理部分事件,然后再将其传播到更高层的控制器做进一步的处理。在 XIM 项目中已经提出了对此的解决方案,虽然只是一些处理技巧,但确实做的很漂亮。我们也已经对让控制器自己来处理事件而不是由事件本身处理进行了讨论。

查看英文原文: GEMVC ActionScript Framework used in Altair Lunar Lander

2008-12-10 04:47630
用户头像

发布了 88 篇内容, 共 274.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

融资融券系统搭建

v16629866266

MapReduce练习案例1-统计求和

小马哥

大数据 mapreduce 七日更

Mybatis系列全解(二):Mybatis简介与环境搭建

潘大壮

Java 后端 mybatis mybatis源码

抽奖小助手——利益相关者

墨狂之逸才

CNCF CTO解读:2021云原生最新趋势

华为云原生团队

开源 Kubernetes 开发者 云原生 边缘技术

Mybatis系列全解(一):手写一套持久层框架

潘大壮

Java 后端 mybatis mybatis源码

产品训练营 - 对二次作业

Wangyunnfei

产品经理训练营 - 第二周作业

泡面加煎蛋

产品经理训练营 - 第二章作业

Ryun

一看就懂的网络传输介质介绍

Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

潘大壮

Java 后端 mybatis mybatis源码

阿里开始“拆”中台?!中台建设何去何从?

博文视点Broadview

阿里发布2021年Redis“神级”手册:基础+原理+应用+集群+拓展+源码,六管齐下

Java架构追梦

Java redis 阿里巴巴 源码 架构

产品训练营-第二周-作业

邹小胖

产品经理训练营

产品经理第二周作业

朱琴

Spring 是如何解决循环依赖的?

程序员小航

Java spring 源码 循环依赖

Mybatis系列全解(三):Mybatis简单CRUD使用介绍

潘大壮

Java 后端 mybatis mybatis源码

拆解 抽奖助手 的利益相关者

小匚

产品经理 产品经理训练营 无码科技

面试学习!我们究竟还要学习哪些Android知识?讲的明明白白!

欢喜学安卓

android 程序员 面试 移动开发

面试加分项!Android项目开发如何设计整体架构?学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

产品经理的大局观——

小匚

产品经理 产品经理训练营

Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件

潘大壮

Java 后端 mybatis mybatis源码

作业:挑一个你喜欢的产品平台,列出产品的利益相关方。

嫉妒的耗子

Springboot使用jasypt需要注意的一个小地方

Sky彬

springboot jasypt

「Android渲染」图像是怎样显示到屏幕上的?

李小四

Android渲染 AndroidUI RenderingPipeline

anyRTC在音频领域的探索

anyRTC开发者

ios android 音视频 WebRTC 在线教育

实习流水帐(一)

YUKI0506

面试官:你说说ReentrantLock和Synchronized区别

叫练

AQS 多线程 ReentrantLock lock 独占锁

Java 程序经验小结:反射机制勿滥用

后台技术汇

28天写作

70 张图带你彻底掌握红黑树

Java 数据结构 红黑树

第二章作业

白知之明

用于Altair Lunar Lander的GEMVC ActionScript框架_Java_Moxie Zhang_InfoQ精选文章