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来说,有三个东西马上就要到来了。
查看英文原文:GEMVC ActionScript Framework used in Altair Lunar Lander
转自:http://www.infoq.com/cn/news/2008/12/gemvc-framework-lunar-lander
转载于:https://www.cnblogs.com/ajuanabc/archive/2008/12/17/2463985.html
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删