上次介绍了如何在业务逻辑中改变视图,这次讲解一种新方法。我们的股票市场显示图将扩展为多股票报价查询器。我们将看到业务逻辑是怎么调整每个视图的。而且我们还会接触到无状态命令是怎么使得事情变得简单。第三次迭代--创建业务逻辑管理多视图我们经常可以发现会有很多个类型一样的视图,其背后的功能也非常类似。每个视图显示一个Model对象。这些视图可以在开始时从管理对象处请求一个Model对象。比如:我们的StockMarketDashboard.mxml可以进行这样的添加:
注意:视图需要传递一些唯一的标识,我们将这些标识添加到StockQuote类。
管理对象StockQuoteManager,在ModelLocator实例中初始化。但是StockQuoteManager会是一个怎样的对象呢?通常我使用Hashmap来实现,其键值就是视图中的唯一标识符。在构造函数中我们可以初始化这个Hashmap,Flex2中我们使用flash.utils.Dictionary
getStockQuote方法返回一个stockQuote对象
StockMarketPod.mxml几乎没有什么改动。只需要将那个唯一的标识符发送给命令,因为命令需要从管理对象处取得StockQuote对象。所以GetStockQuoteEvent类多了一个quoteId属性。在GetStockQuoteCommand中,需要将唯一标识符保存在一个成员变量中
注意一下,在上面的代码中我们使用的是无状态命令,在Cairngorm的说明中,无状态命令是每次Cairngorm事件的响应都创建一个新的命令实例的方式。因此,在这种方式中我们可以放心地把变量存储在成员变量中,而不用担心被其他人改变。
Powered by: BlogJava Copyright © 云自无心水自闲