WEB开发网
开发学院图形图像Flash 跟我StepByStep学FLEX教程------Cairngorm之... 阅读

跟我StepByStep学FLEX教程------Cairngorm之Model Locator

 2009-09-09 00:00:00 来源:WEB开发网   
核心提示:Model Locator的概念已经讲过,就是在一个地方存储程序中所有的值对象(ValueObjects,跟我StepByStep学FLEX教程------Cairngorm之Model Locator,数据)并共享变量, 也就是说,看见大家的评价,心里甚感欣慰,Model Locator用来集中管理程序所需要的变量,

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 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接