2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

DBPack 数据库限流熔断功能发布说明

峨嵋闲散人

分布式事务 云原生 分库分表 dbmesh Database Mesh

以合规交易释放数据“红利”,合合信息旗下启信宝签约福建大数据交易所首批数商

合合技术团队

数据 峰会

人手一套的K8S命令集合,它来了!

wljslmz

云计算 Kubernetes 容器 8月月更

Groovy语境下的Map

FunTester

推荐一款微软出品的开发神器,体验不输IDEA!(含参考资料和项目源码)

收到请回复

面试 springboot 应届生 金九银十 java项目实战分享

测试开发【Mock 平台】09 开发:项目管理(五)搜索、删除和Table优化

MegaQi

测试平台开发教程 8月月更

寻找OpenHarmony「锦鲤」|万元豪礼+技术干货全是你的!

OpenHarmony开发者

OpenHarmony

为什么不做APP而要做小程序

源字节1号

小程序开发

一文详解特权访问管理(PAM)

SEAL安全

安全 访问权限 访问管理 特权访问

阿里大佬 推荐的 “ Spring Cloud Alibaba项目文档 ” 正式发布

冉然学Java

Java 微服务 Spring Cloud Alibaba

《数字经济全景白皮书》银行业数字普惠金融发展与优化策略分析 发布

易观分析

金融 数字经济全景白皮书 易观分析

前端监控系列2 |聊聊 JS 错误监控那些事儿

字节跳动终端技术

APM 前端监控 火山引擎 JS错误

微服务性能分析|Pyroscope 在 Rainbond 上的实践分享

北京好雨科技有限公司

Kubernetes 微服务 云原生

一对一直播系统源码——多人语音聊天室

开源直播系统源码

直播系统源码 语音直播系统 一对一直播视频源码 一对一语音直播

Kotlin协程解析系列(上):协程调度与挂起

vivo互联网技术

kotlin 协程

35岁程序员危机,有何破解之法?

博文视点Broadview

基于RocksDB实现高可靠、低时延的MQTT数据持久化

EMQ映云科技

物联网 mqtt RocksDB emqx 8月月更

开源 | WLock:高可用分布式锁设计实践

开源 分布式 分布式锁

Java 泛型 T,E,K,V,,傻傻分不清?

TimeFriends

8月月更

SpringBoot 日志的各种使用姿势,你真的用对了吗?

程序知音

Java spring 程序员 springboot 后端技术

多原则等于无原则,微服务识别方法究竟该怎么选?

老坛架构

架构 微服务

一文搞懂│mysql 中的备份恢复、分区分表、主从复制、读写分离

MySQL 高并发 经验分享 签约计划第三季 8月月更

最常见的 10种网络安全攻击类型

郑州埃文科技

网络安全 IP地址 网络攻击

增强分析在百度统计的实践

百度Geek说

数据库

连流量染色都没有,你说要搞微服务?

得物技术

架构 微服务 云原生

用Rust编写的Linux内核GPU驱动程序,或将到来

非凸科技

Linux gpu rust 编程语言

StarRocks 技术内幕 | 基于全局字典的极速字符串查询

StarRocks

数据库

为什么电商云产品需要 Assisted Service Module (ASM) 模块的支持

汪子熙

typescript 电商 SAP 8月月更 Storefront

属实不赖!Alibaba开源GitHub星标114K微服务架构全彩进阶手册

冉然学Java

Java 阿里巴巴 开源 微服务 微服务架构

DAPP和APP有哪些区别?多链跨链NFT铸造挖矿dapp系统开发技术原理分析

开发微hkkf5566

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