就听说过有一个开发Flex 的 Cairngorm 微型框架,可惜以前一直没有研究过,只是听说它可以帮助你写出更优雅的代码和更容易维护的程序。昨天和今天我终于把Steven Webster在Flex DevNet上面写的关于Cairngorm的6篇文章(文章地址可以在这里找到:http://www.macromedia.com/devnet/flex/)看完了,对Cairngorm是何物,如何工作也有了一个清醒的认识。心旷神怡~呵
Cairngorm主要就是对开发Flex应用程序应用了一系列的设计模式,从而使开发出来Flex程序可扩展性,可维护性都大大提高。其工作流程很清晰:
1.Front Controller Listens for User Gestures
前端的控件监听用户的行为。注意它只是监听,并不会做任何反应。
2.Commands Do All the Work
控件监听以后调用Commands来做相应的事情,Command做了所有工作。
3.Delegate Server-Side Business Logic to Business Delegates
把服务器端的业务逻辑委托到 Bussiness Delegates中。因为很多时候command需要获得服务器端数据,所以这样一来它可以直接调用Bussiness Delegates而不用关注如何连接数据的细节,实现了信息隐藏。
4.Business Delegate Finds Services with the Service Locator
Command调用Business Delegate 后,Business Delegate 通过Service Locator来找到相应的RPC services,然后执行实现从服务器端取数据。
5.Transfer Data as Value Objects
把传输过来的数据存储为Value Objects。这点大家应该都很熟悉,比如想要查询一个公告,就必定创建一个公告类,来存储每一个公告的标题等信息。
6.Store State in the Model Locator and Let Model Notify View
在Model Locator 保存状态并且能使Model检测到View的变化。这样一来用户操作就能直接影响Model,比如添加物品到购物车,Model中的购物商品就会自动增加。
以 上就是Cairngorm的流程。虽然Steven Webster一再声明Cairngorm并不是开发Flex Application的唯一方法,但是我觉得这个东西(他也这么认为,呵呵)确实可以帮助你开发出更优雅可维护性更强的程序。强烈推荐大家使用 Cairngorm。
Cairngorm主要就是对开发Flex应用程序应用了一系列的设计模式,从而使开发出来Flex程序可扩展性,可维护性都大大提高。其工作流程很清晰:
1.Front Controller Listens for User Gestures
前端的控件监听用户的行为。注意它只是监听,并不会做任何反应。
2.Commands Do All the Work
控件监听以后调用Commands来做相应的事情,Command做了所有工作。
3.Delegate Server-Side Business Logic to Business Delegates
把服务器端的业务逻辑委托到 Bussiness Delegates中。因为很多时候command需要获得服务器端数据,所以这样一来它可以直接调用Bussiness Delegates而不用关注如何连接数据的细节,实现了信息隐藏。
4.Business Delegate Finds Services with the Service Locator
Command调用Business Delegate 后,Business Delegate 通过Service Locator来找到相应的RPC services,然后执行实现从服务器端取数据。
5.Transfer Data as Value Objects
把传输过来的数据存储为Value Objects。这点大家应该都很熟悉,比如想要查询一个公告,就必定创建一个公告类,来存储每一个公告的标题等信息。
6.Store State in the Model Locator and Let Model Notify View
在Model Locator 保存状态并且能使Model检测到View的变化。这样一来用户操作就能直接影响Model,比如添加物品到购物车,Model中的购物商品就会自动增加。
以 上就是Cairngorm的流程。虽然Steven Webster一再声明Cairngorm并不是开发Flex Application的唯一方法,但是我觉得这个东西(他也这么认为,呵呵)确实可以帮助你开发出更优雅可维护性更强的程序。强烈推荐大家使用 Cairngorm。