//定义程序需要的变量,作者建 议读者把该部分定义放在最下边,而不是示例中的上边,原因就是在于代码更整 齐(因人而异,仅作者的个人建议,呵呵) 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