可能的解决方案:使用模型-视图-控制器(MVP)(可能需要依赖注入)。同时使用Mock测试对象!
我计划在我的Android应用程序中实现MVP。基本上这是一种模型-视图-控制器的变体。实质上,将Activity作为一个拟人化的布局管理器,并将任何业务逻辑推迟到Presenter中。从另一个角度来看,Presenter就像是在Activity中实例化的Helper类,用于执行繁重的工作,Activity提供一个Presenter可以使用的接口/回调。
我想听听社区的想法。例如: 这意味着什么样的接口? Model和View与Presenter之间的责任是什么?
对于Presenter,我想Activity会实现Presenter所需的接口?哪些东西应该放入Presenter或Activity?
Presenter是否应该与Activity一对一?一个Activity中有多个显示不同小部件的片段怎么办?现在我们需要多个presenters还是仍然只有一个?
Presenter和Adapter有什么区别?Presenter应该如何与具有ListView和ListViewAdapter的Activity相关联?Presenter和Adapter各自负责什么?Presenter是否应该选择要使用的Adapter?还是Activity做出这个决定?Presenter处理Model数据还是Adapter?Adapter和Presenter之间有冲突吗?适配器是Presenter还是其他东西?通常,适配器只用于Activity中的小部件,如ListViews。我认为它们不会调用获取数据本身的那些方法。
因此,在模型-视图-Presenter中,关键是要决定将哪些内容放入Presenter中,而不是其他类,并且应该在Presenter、Activity、Adapter和视图(包括片段)之间进行通信。
MVP对于Android来说是一个非常糟糕的想法,还是与Android框架非常契合?
请记住,除了Android之外,还有许多成熟的SDK需要像MVP这样的微架构。实际上,这种例子很多:例如,Flex是Flash的一个非常成熟的SDK,但几乎任何重要的应用程序仍需要MVP和MVC框架。
EJB需要Spring来简化和组织它。MFC/Struts等等,列表还很长。为什么Android应该与众不同?为什么我们应该认为在没有像MVP这样的设计模式的情况下,SDK已经拥有了Android所需的一切呢?
在我花费数百个小时之前知道这些信息很好,请随意评论/回答此问题的任何部分。