我搜索了很多,我知道视图控制器实际上是Viper或MVP架构中的“View”而Presenter包含逻辑...但是由于演示者应该易于测试,所以放置Core是否合适位置内容(如LocationManager和位置更新)到演示者?或者我应该放入视图控制器并通知演示者?
答案 0 :(得分:3)
我通过创建一个LocationService
对象来解决这个问题,该对象包装了所有的核心位置方法,并公开了它们的输出,可能会将位置更新的结果公开为流(如果你是使用Rx)或者回调。
我使用Dependency Injection(可能使用Swinject)将此注入MVP中的演示者层,或VIPER中的交互器层(因为位置信息可能会影响核心业务逻辑该应用程序)。为了测试应用,请创建一个'模拟'该服务的版本提供测试数据并将其注入测试中的演示者/交互者。