上次介紹了如何在業(yè)務邏輯中改變視圖,這次講解一種新方法。我們的股票市場顯示圖將擴展為多股票報價查詢器。我們將看到業(yè)務邏輯是怎么調整每個視圖的。而且我們還會接觸到無狀態(tài)命令是怎么使得事情變得簡單。第三次迭代--創(chuàng)建業(yè)務邏輯管理多視圖我們經常可以發(fā)現(xiàn)會有很多個類型一樣的視圖,其背后的功能也非常類似。每個視圖顯示一個Model對象。這些視圖可以在開始時從管理對象處請求一個Model對象。比如:我們的StockMarketDashboard.mxml可以進行這樣的添加:
注意:視圖需要傳遞一些唯一的標識,我們將這些標識添加到StockQuote類。
管理對象StockQuoteManager,在ModelLocator實例中初始化。但是StockQuoteManager會是一個怎樣的對象呢?通常我使用Hashmap來實現(xiàn),其鍵值就是視圖中的唯一標識符。在構造函數(shù)中我們可以初始化這個Hashmap,F(xiàn)lex2中我們使用flash.utils.Dictionary
getStockQuote方法返回一個stockQuote對象
StockMarketPod.mxml幾乎沒有什么改動。只需要將那個唯一的標識符發(fā)送給命令,因為命令需要從管理對象處取得StockQuote對象。所以GetStockQuoteEvent類多了一個quoteId屬性。在GetStockQuoteCommand中,需要將唯一標識符保存在一個成員變量中
注意一下,在上面的代碼中我們使用的是無狀態(tài)命令,在Cairngorm的說明中,無狀態(tài)命令是每次Cairngorm事件的響應都創(chuàng)建一個新的命令實例的方式。因此,在這種方式中我們可以放心地把變量存儲在成員變量中,而不用擔心被其他人改變。
Powered by: BlogJava Copyright © 云自無心水自閑