1

这是我在 MonoDroid 应用程序中使用 MVP(或更具体地说是被动视图?)的尝试:

https://gist.github.com/857356

我的主要目标不是重用,而是提高可测试性和(希望)提高可维护性。重用将是一个很好的副作用,但我目前不打算做一个 MonoTouch 版本或任何东西。

我通常对此很满意(有一个例外),但我绝对需要一些批评/评估。

一个例外:“GetPortfolioIdForContextMenu”方法返回一个“int”,感觉不太正确,因为其他方法不必这样做。只是感觉不对,但我不能完全指出“为什么”,或者甚至该怎么做。

4

3 回答 3

3

您是否考虑过 MVVM 模式?我在 WPF 开发中使用它,虽然我还没有在我的 Android 项目中使用它。我喜欢这种模式,它与 MVP 非常相似,只是 ViewModel 不知道 View 的存在。MVVM 通常仅适用于支持数据绑定的语言。

一些有用的链接:

  1. 维基百科 MVVM
  2. 您需要Android Binding 项目背后的动机。[主要好处:测试]
  3. Android MVVM 教程

希望有些帮助。

-J.P

编辑:刚刚意识到您正在使用 MonoDroid。这可能没有那么有用。也许它会对其他互联网搜索者有用。

于 2011-03-15T21:43:31.853 回答
1

我看了看。我看不出如何重组它以消除这个小“错误”,除非您GetPortfolioIdForContextMenu从类中删除该方法MainActivity并直接使用该值(因为您可以_presenter在主类中访问并且您GetPortfolioIdForContextMenu只能在一个地方使用) . 在这种情况下,演示者仍然保持其角色(检索、持久、格式化)。

有时,在“真实”项目中,您必须打破规则。在这种情况下,我相信即使有一点点不一致,你仍然保持了MVP 的精神

于 2011-03-15T14:59:52.440 回答
1

onCreateContextMenu 包含要为其创建上下文菜单的视图。您可以将投资组合 ID 设置为每个视图的标记,然后在 onCreateContextMenu 中使用它。!

于 2011-03-16T15:29:42.380 回答