经典实例CairngormStore的分析.ppt
第25章 经典实例CairngormStore的分析,CairngormStore实例是Adobe开发团队提供的一个关于如何应用Cairngorm框架的实例。对于初学Flex开发和Cairngorm框架的人员有很大的帮助。,25.1 CairngormStore实例简介,CairngormStore实例实现的是一个在线商店网站,功能包括浏览货物、购买货物、统计金额等。CairngormStore实例流行很广,有较多版本,最新版本为CairngormStore2.2。本节将简要介绍CairngormStore实例的工作原理及文件组织结构。C,25.2 如何运行CairngormStore实例,CairngormStore实例由于结合Java与Flex技术,所以需要进行环境配置。涉及的配置包括Java运行平台、LiveCycle Data Services服务器、源代码本身的修改等。本小节将详细介绍如何运行CairngormStore实例。,25.2.1 架设Java运行平台,Java运行平台用以编译运行Java程序,可安装J2SE(Java 2 Standard Edition)以上版本。,25.2.2 架设AMF网关LiveCycle Data Services,LiveCycle Data Services是Adobe公司推出的AMF网关服务器,负责Java数据类型与ActionScript数据类型的相互转换。本书使用的版本为。,25.2.3 编译运行前的准备,编译运行CairngormStore实例前需要下载CairngormStore实例、修改配置文件等。,25.2.4 编译CairngormStore实例,在架设Java运行平台、LiveCycle Data Services后,只需要新建工程并编译运行CairngormStore实例即可。,25.3 CairngormStore实例的代码分析,CairngormStore实例的代码比较多,这是因为Adobe开发团队提倡的Cairngorm框架本身的结构层次就比较多,再加上作者模块化编程习惯所致。本章将详细分析CairngormStore实例中一些重要的类和文件。读者通过分析这些类和文件,将有助于理解和学习CairngormStore实例。,25.3.1 使用ProductVO类建立商品数据模型,CairngormStore实例实现的是一个在线购物的网站,所以商品是最重要的数据之一。CairngormStore实例中使用ProductVO类建立商品数据模型。,25.3.2 使用ShoppingCartElement类建立购物条目数据模型,购物车中有消费者选购的每个商品的购买信息,如商品数量、此商品总金额等信息。CairngormStore实例中使用ShoppingCartElement类建立购物条目数据模型。,25.3.3 使用ShoppingCart类建立购物车数据模型,购物车数据模型包括多个购物条目、总金额等信息。CairngormStore实例中使用ShoppingCart类建立购物车数据模型。,25.3.4 使用ShopModelLocator类建立应用程序数据模型,ShopModelLocator类定义了整个应用程序的数据模型,包括购物车实例、当前选择的商品、货币格式、各种状态变量等。,25.3.5 使用ShopController类监听事件,ShopController类继承Cairngorm框架的FrontController类,用以监听CairngormEvent事件。,25.3.6 在ServiceLocator类中定义服务,CairngormStore实例中使用组件调用Java类。Cairngorm框架中建议在ServiceLocator类中定义各种服务,这样通过ServiceLocator类的getService()方法就可在任何文件中调用服务。ServiceLocator类通常在MXML文件中被定义为组件。,25.3.7 创建自定义事件,CairngormStore实例中定义了不少事件。本节以GetProductsEvent事件为例,介绍如何创建自定义事件。其他事件的定义大同小异。GetProductsEvent类继承于Cairngorm框架的CairngormEvent类,用以表示获得商品数据事件。,25.3.8 创建自定义命令,命令一般对应一个事件,所以两者的取名很相似。例如,GetProductsEvent事件的对应命令为GetProductsCommand。命令类必须实现Cairngorm框架的ICommand接口类,但不一定要实现IResponder接口类。若命令执行后有返回结果或后续动作,那么需要实现Responder接口类。若命令执行后没有返回结果或后续动作,那么只需要实现ICommand接口类。,25.3.9 视图外观分析,CairngormStore实例的视图外观(MXML文件)存储于“view”文件夹中。不同视图外观根据功能又存储于不“assets”文件夹存放了图标资源。“checkout”文件夹存放了用户结算时视图。,25.4 如何添加和调用新服务,上面详细分析了CairngormStore实例的主要代码。在理解了CairngormStore实例的运行原理后,本小节将介绍如何扩展此应用程序,其中最重要的是如何添加和调用新服务。,25.5 小结,本章详细介绍了CairngormStore实例的安装部署和代码分析。CairngormStore实例涉及的技术包括Flex技术、Java技术、Cairngorm框架等,是应用Flex技术开发中大型应用程序的经典范例。通过本章实例的学习,读者能够举一反三地应用Flex技术开发中大型应用程序,同时也能更好地理解Flex如何与Java进行通信。,