这是我尝试使用MonoDroid应用程序使用MVP(或更具体的Passive View?):
https://gist.github.com/857356
我的主要目标不是重用,而是提高可测试性并(希望)提高可维护性。重复使用将是一个很好的副作用,但我目前不打算做MonoTouch版本或其他任何东西。
我一般都很满意(有一个例外),但我肯定需要一些批评/评价。
一个例外:方法“GetPortfolioIdForContextMenu”返回一个'int',这感觉不太正确,因为其他方法不必这样做。这只是感觉不对,但我不能完全理解'为什么',或者甚至做些什么。
答案 0 :(得分:3)
您是否考虑过MVVM模式?我在WPF开发中使用它,虽然我还没有将它用于我的Android项目。我喜欢这个模式,它与MVP非常相似,只是ViewModel不知道View存在。 MVVM通常只适用于支持数据绑定的语言。
一些有用的链接:
希望其中一些有用。
-jP
编辑:刚刚意识到您正在使用MonoDroid。这可能没那么有用。也许它对其他网络搜索者有用。
答案 1 :(得分:1)
GetPortfolioIdForContextMenu
类中删除MainActivity
方法并直接使用该值(因为您可以访问{{},否则我不会看到您如何重新构建它以删除这个小“错误”。 1}}在主类中,您只在一个地方使用_presenter
。在这种情况下,演示者仍然保持其角色(检索,保留,格式化)。
有时,在“真实”项目中,您必须违反规则。在这种情况下,我相信即使有这么一点不一致,你也保持了MVP的精神。
答案 2 :(得分:1)
onCreateContextMenu包含要为其创建上下文菜单的视图。您可以将组合ID设置为每个视图的标记,然后在onCreateContextMenu中使用它。 HTH!