Flex MVC框架:Cairngorm

基本框架图:

单例代码(经常要用到):

public class FlickrModelLocator implements IModelLocator

  private static var _instance:FlickrModelLocator;  
 
  public function FlickrModelLocator(enforcer:ModelSingletonEnforcer)
 {  
     if(enforcer==null)
     {
        throw new Error("You can only have one flickrModelLocator");
     }   
  }
  
  public static function getInstance():FlickrModelLocator
  {
     if(!_instance)
     {
        _instance=new FlickrModelLocator(new ModelSingletonEnforcer);
     }
     return _instance;
  } 

 //这个类是用于防止外部类去实例化

class ModelSingletonEnforcer{}

 

 

cairngorm内容:

bussiness:与服务器交互,并返回结束给common

common:调用bussiness方法,来请求服务器。 用bussiness返回的数据,来更新model,model是给view绑定的。

control:只是集中注册并管理事件(Event)与命今(Command)的映射关系,在主窗体中实例化

event:继承extends CairngormEvent,定义事件名

model:改变该类的值,View也会变,因为View是绑定该类的。实现implements IModelLocator接口,单例类,[Bindable]

view: 前端界面,绑定读取model

vo:就是实体类,实现implements IValueObject接口

 

1.         前端控制器(FrontController)监听用户行为

  前端控制器是Cairngorm事件的唯一监听者,但其不并做任何操作,只是集中注册并管理事件(Event)与命今(Command)的映射关系

  操作:

    1.类要继承extends FrontController

    2.addCommand(FlickrEvent.PHOTOS_SEARCH,SearchCommand);    

    //这里变事件FlickrEvent.PHOTOS_SEARCH映射到SearchCommand类中,SearchCommand类要实现implements ICommand接口,当执行FlickrEvent.PHOTOS_SEARCH这个事件时,就会调用SearchCommand中的execute(event:CairngormEvent)方法。

    3.FrontController这个文件要在主窗体中注册,以便绑定事件

      xmlns:control1="com.album.control.*"

      <control1:FlickrFrontController></control1:FlickrFrontController>

 

2.         命令(Commands)执行所有用户操作

    前端控制品(FrontController)监听到事件与命令有匹配时,便告诉命令(Commmands)调用execute()方法处理事件。

    调用bussiness方法,来请求服务器。 用bussiness返回的数据,来更新model,model是给view绑定的。实现IResponder这个接口

    当然如果没有与服务器交互就不要调用bussiness,也不要实现IResponder这个接口

 

3.         服务器端业务逻辑委托给Business Delegate

  当命令(Commands)执行时,它只是关心是否获取到数据,而并不关心获取到什么具体数据。因为经常需要从服务器端获取数据,此时命令(Commands)更喜欢把它委托给其它类去操作。所以需要处理服务器端业务逻辑的时候,你都可以委托给命令(Commands)可以调用的Business Delegate类去处理。

  与服务器交互,并返回结束给common来处理  

 

4.         在Model Locator保存状态并且让Model通知View

  Model Locator是一个保存应用程序全部状态和包含Value Objects的地方。当应用程序状态改变时,Moel Locator 通过Data Binding方式来通知View改变。

转载于:https://www.cnblogs.com/chencidi/archive/2010/11/19/1881589.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值