客户端架构 - 数据层,MV *和耦合

时间:2015-06-06 20:18:29

标签: android mvvm architecture model mvp

我一直在研究客户端架构的最佳实践,包括mvvm和最新增加的内容,如flux ...

我正在考虑Android应用程序的架构,它可能会使用mvvm和mvp的组合来表示。

困扰我的是组件之间的耦合(mv *相关类), 例如: 我有一个在StockListView中使用的SlimStockItem模型,它可以导航到StockItemView中使用的StockItem,StockItem有更多的数据。

我可以为两个视图使用相同的StockItem和空值 - 这将引入控制器与列表和项目详细信息组件的视图之间的耦合,或者使用不同的方法导致一些实现选择:

  1. 拥有"域名"名为Stock的实体拥有所有数据并从中构建相关的StockItem"存储库"
  2. 根本不实现域层,并在服务器上查询StockItem(如果适用,在技术层实施缓存)
  3. 保留耦合并将StockItem传递到股票项目视图。
  4. 第二种情况是从服务器接收股票的更新(推/拉)。

    (Flux)事件非常适合作为pub / sub实现,以通知多个来自用户交互/服务器推/拉交互的新状态更改视图。

    在考虑实施时,我有几个选择: 1.更新"域"分层并发布下游事件" StockUpdated"使用"域名" model作为更新SlimStockItem和StockItem的mv *组件的有效载荷。 2.根本不实现域层并发布事件" StockUpdated"使用StockDataPayload为mv *组件更新SlimStockItem和StockItem。

    您使用哪种方法以及可能的权衡取舍? (如果您使用不同的方法,请描述它!)

    P.S我引用"域名" model,因为实际的域模型驻留在服务器上,在讨论客户端体系结构时超出了范围。

    祝你好运, 埃里克。

0 个答案:

没有答案