写点什么

用于 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:47606
用户头像

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

关注

评论

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

Java 程序经验小结:避免使用终结方法

后台技术汇

28天写作

架构师 3 期 3 班 -week9- 作业

zbest

作业 week9

架构师 3 期 3 班 -week9- 总结

zbest

总结 week9

深度 | 阿里云蒋江伟:什么是真正的云原生?

阿里巴巴云原生

云计算 容器 运维 云原生 k8s

[JetPack] LiveData源码解析

Changing Lin

android 技术 JetPack

Pulsar vs Kafka,CTO 如何抉择?

Apache Pulsar

大数据 pulsar 消息中间件

惊悚,单个java进程占用700%的CPU

万里无云

Java 后端 cpu

持币生息钱包APP系统开发|持币生息钱包软件开发

系统开发

全球城市ZoneId和UTC时间偏移量的最全对照表

YourBatman

GMT UTC ZoneId 时区

还热乎的面经

书旅

百度 面试 面经

2020 总结 | VoltDB的亮点,你了解多少?

VoltDB

数据库 物联网 VoltDB

人设崩塌的美国生物实验室

脑极体

关注直播 解锁采集器新功能

滴滴云

运维 可观测性 直播技术 滴滴夜莺

史上最全!阿里巴巴2021年最新最全500道Java后端面试大全(值得收藏)

Java 编程 程序员 面试

区块链数字货币钱包系统软件开发|区块链数字货币钱包APP开发

系统开发

FFMpeg解码API以及在解码过程中存在的丢帧问题

wangwei1237

ffmpeg 视频解码

对微服务架构设计实践中若干问题的探讨

xcbeyond

微服务 28天写作

OMG,阿里大佬Kafka手写实战记录,这也太香了

Java架构之路

Java 程序员 架构 面试 编程语言

k8s 上运行我们的 springboot 服务之——springboot服务https请求

柠檬

Java k8s https Istio,

如何开发一个完善的Kafka生产者客户端?

李尚智

kafka 架构 中间件 消息中间件

从零开始学java第一天(为报训练营做准备)

落曦

AQS之ReentrantReadWriteLock写锁

伯阳

读写锁 ReentrantReadWriteLock 多线程与高并发 lock

DCache 分布式存储系统|安装部署与应用创建

TARS基金会

缓存 分布式 微服务 存储 TARS

你跟涨薪只差这份Java核心知识点文档,读懂它你就是技术大佬!

Java架构之路

Java 程序员 架构 面试 编程语言

厉害!腾讯T3-2都还在学的微服务+MySQL+Kafka+boot2.x+虚拟机PDF

Java架构之路

Java 程序员 架构 面试 编程语言

Redis中哈希分布不均匀该怎么办

Java 数据库 编程 程序员 面试

高效学习:如何制定有价值的学习目标

石云升

学习 28天写作

有人相爱,有人年少财务自由,有人数据结构都背不出来

Java架构师迁哥

Java虚拟机知识 - JVM入门

小马哥

Java JVM 架构师 Java虚拟机 七日更

HTML(六)——html表单

程序员的时光

程序员 大前端 七日更 28天写作

深度模型的日志异常检测,还有谁不会?

华为云开发者联盟

运维 日志 网络 AIOPS 系统

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