2017-04-24 26 views
2

谁能告诉我什么是使用依赖注入(例如Dagger2)从其演示脱钩的观点(活动)或使用该视图(活动)实现解耦接口的区别从演示者?MVP模式为Android(DI - 接口)

我很困惑。当我试图单元测试演示了这两种方法应该工作。但是为什么在简单的界面足够时使用像匕首这样的工具呢? 希望smbdy。可以帮助。由于

+0

我觉得这个问题有点不清楚,因为它是目前的措辞。你能提供一个你所说的最简单的代码示例吗? –

+0

什么不清楚?我可以使用视图实现的界面和演示者实例将例如从视图中的引用传递给演示者。所以我会在类之间有一个弱耦合。接口的实现对主持人来说并不重要,这意味着我可以使用任何MockView。使用Dagger2将有相同的结果,但它会在演示者中注入视图对象。在测试方面,它更容易使用接口。使用匕首有什么优势?接口就可以解决问题要容易得多... – ECommerce

+0

如果你问 MVP之间差异有和没有匕首2有除了在主持人的依赖没有区别的管理更好。对于拥有非常小的对象图的演示者,它在所有方面都没有太大的区别 –

回答

0

没有任何干扰使用接口和匕首。 Dagger仅用于DI(依赖性注入),用于在MVP中提供不同的层要求。

视图接口必须总是使用,因为这是MVP必须如何和视图从演示通过实现一个接口去耦。

你用匕首从一个特定的层与层之间提供的东西。你完全可以把匕首放在一边,创建视图层的辅助类,它实现了一些辅助接口,并将其遍布代码发送到主持人通过结构,但这是有点乱,这就是为什么他们使用匕首。

看看我用匕首我的样本项目: https://gitlab.com/amirziarati/Echarge