<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è)務邏輯中改變視圖,這次講解一種新方法。我們的股票市場顯示圖將擴展為多股票報價查詢器。我們將看到業(yè)務邏輯是怎么調整每個視圖的。而且我們還會接觸到無狀態(tài)命令是怎么使得事情變得簡單。
    第三次迭代--創(chuàng)建業(yè)務邏輯管理多視圖
    我們經常可以發(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),其鍵值就是視圖中的唯一標識符。在構造函數(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事件的響應都創(chuàng)建一個新的命令實例的方式。因此,在這種方式中我們可以放心地把變量存儲在成員變量中,而不用擔心被其他人改變。



    主站蜘蛛池模板: jjzz亚洲亚洲女人| 杨幂最新免费特级毛片| 国产亚洲自拍一区| 午夜老司机免费视频| 97av免费视频| 日韩视频免费在线观看| eeuss影院www天堂免费| 国产亚洲漂亮白嫩美女在线| 亚洲首页国产精品丝袜| 97久久精品亚洲中文字幕无码 | 亚洲区视频在线观看| 亚洲午夜久久久久久噜噜噜| vvvv99日韩精品亚洲| 超pen个人视频国产免费观看 | 91亚洲精品麻豆| 无码久久精品国产亚洲Av影片| 在线观看亚洲成人| 国产精品亚洲mnbav网站| 亚洲AV日韩精品一区二区三区| 精品少妇人妻AV免费久久洗澡| 免费A级毛片无码免费视| 免免费国产AAAAA片| 亚洲成年人免费网站| 一级毛片不卡片免费观看| a级在线观看免费| 今天免费中文字幕视频| 久久精品免费观看| 无码日韩精品一区二区免费暖暖| a级片免费在线观看| 美女视频黄的免费视频网页| 免费毛片a线观看| 亚洲免费在线视频| 精品无码AV无码免费专区| 67194成手机免费观看| 亚洲视频在线免费看| 国产精品永久免费10000| 一二三四免费观看在线视频中文版| 亚洲精品动漫免费二区| 日本高清免费不卡视频| 亚洲第一福利网站在线观看| 久久久久亚洲精品中文字幕|