跟我StepByStep学FLEX教程------Cairngorm之Model Locator
2009-09-09 00:00:00 来源:WEB开发网Model Locator的概念已经讲过,就是在一个地方存储程序中所有的值对象(ValueObjects,数据)并共享变量。
也就是说,Model Locator用来集中管理程序所需要的变量。
下边把Demo15的ModelLocator.as代码如下:(作者增加相应的注释)
import mx.collections.ArrayCollection;
[Bindable]
public class ModelLocator
{
//定义程序需要的变量,作者建议读者把该部分定义放在最下边,而不是示例中的上边,原因就是在于代码更整齐(因人而异,仅作者的个人建议,呵呵)
public var photoData:ArrayCollection=new ArrayCollection();
public var purchasedPhotos:ArrayCollection=new ArrayCollection();
//定义ModelLocator的Single Instance,这就是设计模式的单例模式(不明白的读者可以看设计模式中的该模式讲解)
static private var __instance:ModelLocator=null;
//返回single instance
static public function getInstance():ModelLocator
{
if(__instance == null)
{
__instance=new ModelLocator();
}
return __instance;
}
}
对于ModelLocator的instance和getInstance的代码编写,这部分代码读者在写新的代码过程中,除非重新定义一个自己的ModelLocator(基于IModelLocator 接口实现),这部分代码就这么写了,呵呵,即使是自己定义,其也大同小异。
对于getInstance来说,会判断程序是否已经有ModelLocator的实例,如果有则读取,没有则创建。
而[Bindable]的特性,使自己定义的变量在任何一个使用定义变量的地方自动更新,这也是ModelLocator的共享变量的概念所在。
ValueObject下的photo.as对象作者就不解释了,实在没啥解释的,呵呵。
下一讲就要对Cairngorm的核心控制流程进行讲解了,也就是bussiness下的各部分和event的复杂关系,可能读者刚接触会觉得很绕,没关系,呵呵,Step By Step,作者讲解之后,读者就不会有那种感觉了。
作者很感谢广大读者的支持,看见大家的评价,心里甚感欣慰,呵呵。
文章来源:http://wangyisong.javaeye.com/blog/451924
Tags:StepByStep FLEX 教程
编辑录入:爽爽 [复制链接] [打 印]赞助商链接