跟我StepByStep學FLEX教程

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.