1.Cairngorm的Model Locator的定义
在一个地方存储程序中所有的值对象(ValueObject),并共享变量,那么我们就可以理解为Model Locator是用来管理程序中所需要的变量
2.分析Cairngorm官方的sampleModel Locator代码
package model
{
import mx.collections.ArrayCollection;
[Bindable]
public class ModelLocator
{
public var photoData:ArrayCollection=new ArrayCollection();
public var purchasedPhotos:ArrayCollection=new ArrayCollection();
//这个是设计模式中的一个单例模式,不明白设计模式的朋友先了解一 下设计模式
static private var __instance:ModelLocator=null;
//返回ModelLocator的实例
static public function getInstance():ModelLocator
{
if(__instance == null)
{
__instance=new ModelLocator();
}
return __instance;
}
}
}
3.代码解释
Modellocator返回实例这部分代码大同小异,基本上所有的ModelLocator都是这样的写法。
对于getInstance()方法,会判断程序是否有ModelLocator的实例,如果有值就不需要重新创建。
对于ValueObject里面的代码就不需要将解了,跟Java的POJO差不多
下一节我们在介绍Caringorm的核心流程控制,也就是sample下business和events之间的关系了。