`
xiaotian_ls
  • 浏览: 308093 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Cairngorm中使用remoteObect方式

    博客分类:
  • Flex
阅读更多
1. 在Control中有Command.as定义了Command接口,笔记一中FrontController中addCommand的调用添加的Command都必须实现此接口。Command接口只定义一个唯一的需要实现的方法execute(); 这是一个典型的命令模式, 所有后续的命令都实现此接口, 对外统一提供一个单点入口execute(), 其他的人都可以进行调用,但不需要了解命令具体的实现方式.

2. 在Model中定义了ModelLocator接口,ModalLocator是所有数据绑定的接口,也就是说应用中所有需要进行绑定的数据都需要通过此接口进行定位。在实际的应用中需要实现此接口,并提供所有的绑定数据。

3. 在business中定义了两个类 ServiceLocator和Responder。
ServiceLocator这是伪单例类, 应用开发者用于定义并获得服务.
之所以是伪单例类, 是因为ServiceLocator是定义在mxml中的,
它需要一个无参数的Public构造函数. 使用中必须定义一个ServiceLocator的子类, 并在其中定义需要的服务.

代码示例:首先在Services.mxml中进行如下定义:

* <cairngorm:ServiceLocator xmlns:mx="http://www.macromedia.com/2003/mxml"
*                           xmlns:cairngorm="org.nevis.cairngorm.business.*" >
*
*   <mx:RemoteObject id="customerDelegate" source="org.nevis.cairngorm.samples.login.CustomerDelegate"
*                    result="event.call.resultHandler( event )"
*                    fault="event.call.faultHandler( event )">
*   </mx:RemoteObject>
*
* </cairngorm:ServiceLocator>

在Flex主应用中添加一行:
<business:Services id="services" />
其中business命名空间在应用头部进行申明
xmlns:business="org.nevis.cairngorm.samples.store.business.*"
ServiceLocator使用方法:
在业务代理类(Delegate)中通过如下方式进行调用:
*   var service = ServiceLocator.getInstance().getService( "customerDelegate" );


在View中,定义了两个类 ViewLocator和ViewHelper
ViewHelper:用于隔离Command命令类和View视图的具体实现.
为了执行业务功能, Command类需要查询并更改视图,
在执行业务逻辑前, 命令类需要从视图中获得用户输入的数据;
业务逻辑结束后又经常需要更改视图, 显示执行结果.
通过将查询和更改视图的操作封装到单独ViewHelper类中, 命令类完全不需要了解视图类的任何信息.
ViewHelper属于一种特殊的视图, 当ViewHelper创建后, 就被注册到指定的视图.
ViewHelper继承自MXMLObject, 在重写的初始化函数(initialized)中, 调用ViewLocator进行注册,
并指定unload方法的监听函数unregister, 在unload时, 调用unregister, 使用ViewLocator的取消注册.

ViewLocator是一个单例类, 用于获取ViewHelper操作视图.
命令类需要通过ViewHelper的方法来查询更改视图, 而ViewLocator即用于让命令类取得需要的ViewHelper.
命令类不需要知道ViewHelper的名称, ViewLocator会返回需要的ViewHelper实例.

track:http://www.blogjava.net/usherlight/archive/2006/03/09/34513.html
分享到:
评论

相关推荐

    Cairngorm例子

    在提供的文件中,"library.swf"可能是Cairngorm框架的一个运行示例,它包含编译后的Flex应用程序,展示了如何在实际项目中使用Cairngorm组件。而"catalog.xml"可能是应用程序的配置文件,列出库中可用的组件或资源,...

    Cairngorm开发文档中文版

    Cairngorm是一种轻量级的ActionScript框架,主要用于构建Flex和Adobe ...通过阅读"Cairngorm 开发文档中文版.pdf",你可以深入了解每个组件的使用方法以及如何在实际项目中整合这些组件来构建高效、可维护的应用程序。

    cairngorm中文版

    传统的Flex开发方式可能会导致代码混乱,不易维护,而Cairngorm框架就是为了应对这一挑战而诞生的。 **MVC模式** MVC模式是一种软件设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器...

    Flex开发框架cairngorm入门实例教程

    4. **服务(Service)/命令(Command)**:虽然在提供的内容中没有直接涉及,但Cairngorm通常使用命令模式处理业务逻辑。当控制器接收到事件后,会调用相应的Command来执行业务逻辑,例如保存新添加的图书到数据库。...

    Flex 使用 Cairngorm 框架与java进行数据交互

    前台FLex工程(单独工程Cairngorm)使用Cairngorm框架与后台java工程(FLexToJava)进行数据交互。功能点: ...附带:数据库sql在java工程中,测试通过,完整的flex使用框架Cairngorm向java后台数据交互

    Cairngorm框架配置

    在Cairngorm框架中,服务通常是通过BlazeDS或其他类似的远程通信技术实现的。 #### 二、Cairngorm框架配置详解 ##### 2.1 开发环境搭建 为了开发基于Cairngorm框架的应用,我们需要准备以下开发工具: - **JDK及...

    Cairngorm.swc+Cairngorm+开发文档中文版.rar 套装

    套装中的`Cairngorm.swc`文件是一个库文件,包含了Cairngorm框架的所有类和组件,可以直接引入到你的Flex项目中使用。而`catalog.xml`可能是库的元数据文件,用于描述库中的类和资源。 开发文档的中文版对于理解...

    Flex框架Cairngorm经典案例源码

    5. **服务代理的使用**:Cairngorm中的Proxy类用于封装远程服务调用,例如与服务器进行数据交换,确保数据访问的透明性。 6. **控制器的实现**:控制器负责响应视图的事件,更新模型或发送命令,保持模型和视图的...

    Cairngorm.swc文件

    8. **Presentation Model**:虽然不是MVC中的标准部分,但Cairngorm提倡使用展示模型(Presentation Model)来封装视图的业务逻辑,这样可以将视图和模型分离,使两者更易于独立测试和复用。 在实际开发中,使用...

    flex框架之Cairngorm框架(二)

    在“flex框架之Cairngorm框架(二)”这个主题中,我们可能深入探讨如何使用Cairngorm与后台进行通信。这通常涉及以下步骤: 1. **创建Command**:首先,为与后台的通信创建一个命令类,例如`...

    Cairngorm.swc

    Cairngorm is the lightweight micro-architecture for Rich Internet Applications built in Flex or AIR. A collaboration of recognized design patterns, Cairngorm exemplifies and encourages best-practices ...

    cairngorm + lcds最小包.rar

    "service"文件可能包含cairngorm中的Service层实现,这部分代码通常处理与后台数据源的通信,如调用Web服务或访问数据库。 LCDS,是Adobe提供的一个全面的后端解决方案,它允许Flex应用无缝地与Java、ColdFusion或...

    cairngorm3实践源码

    通过分析和运行这些示例,你可以学习如何在实际项目中使用Cairngorm3,例如如何创建Command来响应事件,如何使用ModelLocator管理数据,以及如何组织项目的结构。 总的来说,这个源码包为学习Cairngorm3提供了一个...

    flex Cairngorm框架实例

    在Cairngorm中,通常使用Flex的`RemoteObject`或`HTTPService`组件与服务器进行通信,获取或更新数据。模型组件通过事件发布数据变化,供其他层监听并作出响应。 2. **视图(View)**:视图是用户界面,负责展示...

    Flex之使用Cairngorm(3) - Command & Event

    标题提到的“Flex之使用Cairngorm(3) - Command & Event”,意味着这个系列文章已经讲解了Cairngorm的基础知识,现在将更深入地探讨Command模式和Event机制,这两个是Cairngorm中关键的交互元素。 Command模式是...

    Cairngorm简单小例子

    在提供的"Cairngorm"压缩包文件中,初学者可以通过查看和运行示例项目来学习如何在实际开发中应用这些概念。通过学习Cairngorm,开发者能够更好地理解如何组织Flex应用程序,提高代码的可读性和可维护性,同时利用其...

    Cairngorm-Flex.zip_Cairngorm_flex

    在实际应用中,开发者可以根据项目需求选择使用Cairngorm的部分或全部组件。例如,对于小型项目,可能只需要命令和事件机制来组织代码;而对于大型项目,全面使用Cairngorm框架可以带来更好的可维护性和团队协作效率...

    [cairngorm入门]introducing_cairngorm.pdf

    - **易于测试**:Cairngorm的设计鼓励使用接口和服务层,这使得单元测试变得更加简单。 #### 五、Cairngorm的学习资源 - **官方文档**:Adobe官方提供了详细的Cairngorm文档和示例,是学习Cairngorm的首选资源。 -...

Global site tag (gtag.js) - Google Analytics