zoukankan      html  css  js  c++  java
  • (三)RI中的数据关系

          RI中的数据都是基于XML的,散落在以下几个地方:

    StockTraderRI.Modules.Market模块:/Data:Market.xml和MarketHistory.xml

    StockTraderRI.Modules.News模块:/Data:News.xml

    StockTraderRI.Modules.Position模块:/Data:AccountPositions.xml

          我将其转换为DB中的同名表,它们之间的关系如下所示:

    clip_image002

          注意到,以AccountPositions表为核心,通过TickerSymbol字段进行外键连接,AccountPositions和Market表之间是1对1的关系;而和MarketHistory、News表之间都是1对多的关系。

          让我们回到程序中,再观察一下Shell主程序中的模块加载顺序(同时参照下图):

    protected override IModuleCatalog GetModuleCatalog()
    {
        var catalog = new ModuleCatalog();
        catalog.AddModule(typeof(MarketModule))
            .AddModule(typeof(PositionModule), "MarketModule")
            .AddModule(typeof(WatchModule))
            .AddModule(typeof(NewsModule));
    
        return catalog;
    }

          就是说,MarketModule的加载先于PositionModule。这是因为,在程序运行时,先加载PositionSummaryView这个GridView是毋庸置疑的,但是默认会选中其中的第一笔数据,那么在TrendLineView中必须有相对应的一笔数据显示出来,所以,MarketModule(也就是TrendLineView)的加载要先于PositionModule。

    clip_image004

          一般而言,如果RI是由一个人完成的,那么他会根据用户操作的顺序来实现,那么第一个要完成的应该是Position模块的PositionSummaryView和PositionPieChartView(毕竟是用户最先看到的GridView,并根据这些数据进一步进行操作)。

          但是,如果我也按照这样的顺序来一边写一边向大家介绍RI,就展示不出Prism的优点了,即各个Team可以独自开发不同的模块,然后再无缝整合在一起。因此,在接下来的几章中,我会按照MarketàPositionàWatchàNews的顺序来逐一介绍并添加模块,并在Market完成后,介绍Prism下单元测试的具体操作。

  • 相关阅读:
    对比度亮度调整及滑动条应用
    多项式求逆
    【转载】android手势翻页效果
    [Android实例] webview 实现翻页功能
    (转载)Android 平滑和立体翻页效果1
    android背景选择器selector用法
    WebView调用javaScript
    (转载自eoe论坛)Android上百实例源码分析以及开源分析集合打包
    android用户界面之WebView教程实例汇总
    WebView使用总结(应用函数与JS函数互相调用)
  • 原文地址:https://www.cnblogs.com/Jax/p/1522193.html
Copyright © 2011-2022 走看看