<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    上次介紹了如何在業(yè)務(wù)邏輯中改變視圖,這次講解一種新方法。我們的股票市場顯示圖將擴展為多股票報價查詢器。我們將看到業(yè)務(wù)邏輯是怎么調(diào)整每個視圖的。而且我們還會接觸到無狀態(tài)命令是怎么使得事情變得簡單。
    第三次迭代--創(chuàng)建業(yè)務(wù)邏輯管理多視圖
    我們經(jīng)常可以發(fā)現(xiàn)會有很多個類型一樣的視圖,其背后的功能也非常類似。每個視圖顯示一個Model對象。這些視圖可以在開始時從管理對象處請求一個Model對象。比如:我們的StockMarketDashboard.mxml可以進行這樣的添加:

    < view:StockMarketPod?
    ????
    quoteId ="quote1" ?
    ????title
    ="Stockmarket?first?pod" />
    < view:StockMarketPod?
    ????
    quoteId ="quote2" ?
    ????title
    ="Stockmarket?second?pod" />
    < view:StockMarketPod?
    ????
    quoteId ="quote3" ?
    ????title
    ="Stockmarket?third?pod" />
    < view:StockMarketPod?
    ????
    quoteId ="quote4" ?
    ????title
    ="Stockmarket?fourth?pod" />

    注意:視圖需要傳遞一些唯一的標識,我們將這些標識添加到StockQuote類。

    package ?org.nevis.cairngorm.samples.dashboard.model
    {
    ????
    public ? class ?StockQuote
    ????
    {
    ????????[Bindable]
    ????????
    public ?var?lastStockQuote?:?Number;
    ????????[Bindable]
    ????????
    public ?var?stockQuoteError?:?String;????????
    ????}

    }


    管理對象StockQuoteManager,在ModelLocator實例中初始化。但是StockQuoteManager會是一個怎樣的對象呢?
    通常我使用Hashmap來實現(xiàn),其鍵值就是視圖中的唯一標識符。在構(gòu)造函數(shù)中我們可以初始化這個Hashmap,F(xiàn)lex2中我們使用flash.utils.Dictionary

    public ?function?StockQuoteManager()?
    {
    ????stockQuotes?
    = ? new ?Dictionary();
    }


    getStockQuote方法返回一個stockQuote對象

    public ?function?getStockQuote(?quoteId?:?String?)?:?StockQuote
    {
    ????var?key?:?String?
    = ?quoteId;
    ????
    if (?stockQuotes[?key?]? == ? null ?)
    ????
    {
    ????????var?stockQuote?:?StockQuote?
    = ? new ?StockQuote();
    ????????stockQuotes[?key?]?
    = ?stockQuote;
    ????}

    ????
    return ?StockQuote(?stockQuotes[?key?]?);
    }


    StockMarketPod.mxml幾乎沒有什么改動。只需要將那個唯一的標識符發(fā)送給命令,因為命令需要從管理對象處取得StockQuote對象。所以GetStockQuoteEvent類多了一個quoteId屬性。
    在GetStockQuoteCommand中,需要將唯一標識符保存在一個成員變量中

    private ?var?model?:?ModelLocator? = ?ModelLocator.getInstance();
    private ?var?quoteId?:?String;
    ?????????
    public ?function?execute(?event?:?CairngormEvent?)?:? void
    {
    ????var?stockQuoteEvent?:?GetStockQuoteEvent?
    = ?GetStockQuoteEvent(?event?);?????????????
    ????var?symbol?:?String?
    = ?stockQuoteEvent.symbol;
    ????quoteId?
    = ?stockQuoteEvent.quoteId;
    ????var?delegate?:?StockMarketDelegate?
    = ? new ?StockMarketDelegate(? this ?);
    ????delegate.getQuoteForSymbol(?symbol?);
    }

    ????????
    public ?function?onResult(?event?:?ResultEvent? = ? null ?)?:? void
    {
    ????
    // simulate?a?result?from?service
    ????var?lastStockQuote?:?Number? = ?Math.random()? * ? 50 ? + ? 5 ;
    ????var?stockQuote?:?StockQuote?
    = ?model.stockQuoteManager.getStockQuote(?quoteId?);
    ????stockQuote.lastStockQuote?
    = ?lastStockQuote;
    ????stockQuote.stockQuoteError?
    = ? "" ;
    }

    ????????
    public ?function?onFault(?event?:?FaultEvent? = ? null ?)?:? void
    {
    ????var?stockQuote?:?StockQuote?
    = ?model.stockQuoteManager.getStockQuote(?quoteId?);
    ????stockQuote.lastStockQuote?
    = ?NaN;
    ????stockQuote.stockQuoteError?
    = ? " An?error?occured. " ;
    }

    注意一下,在上面的代碼中我們使用的是無狀態(tài)命令,在Cairngorm的說明中,無狀態(tài)命令是每次Cairngorm事件的響應(yīng)都創(chuàng)建一個新的命令實例的方式。因此,在這種方式中我們可以放心地把變量存儲在成員變量中,而不用擔(dān)心被其他人改變。



    主站蜘蛛池模板: 亚洲熟妇色自偷自拍另类| sss在线观看免费高清| 国产jizzjizz视频全部免费| 91在线免费观看| 久久精品国产亚洲av麻豆图片| 欧洲美熟女乱又伦免费视频 | 成人电影在线免费观看| 久久亚洲AV无码精品色午夜麻豆| 免费羞羞视频网站| 最新国产乱人伦偷精品免费网站 | 国产又黄又爽又猛的免费视频播放 | 国产精品黄页在线播放免费| 日韩精品无码免费专区网站| 亚洲人精品亚洲人成在线| 国产成人亚洲综合| 国产成人免费爽爽爽视频| 大地资源网高清在线观看免费| 亚洲精品无码永久在线观看男男| 国产亚洲一区二区三区在线观看| 午夜a级成人免费毛片| 无码国产精品一区二区免费vr| 色偷偷噜噜噜亚洲男人| 7777久久亚洲中文字幕蜜桃| 四虎亚洲国产成人久久精品| 亚洲视频免费播放| 你懂的免费在线观看| 亚洲另类无码专区首页| 精品日韩亚洲AV无码一区二区三区| 国产传媒在线观看视频免费观看| 亚洲一区二区三区免费在线观看| 久久国产精品免费| 亚洲av无码成人精品国产| 亚洲国产理论片在线播放| 亚洲国产成人精品无码区在线观看| 午夜私人影院免费体验区| 亚洲精品国产免费| 日韩精品无码免费一区二区三区 | 成在人线AV无码免费| 99免费观看视频| 国产一精品一AV一免费| 人成免费在线视频|