【发布时间】:2018-06-27 10:58:21
【问题描述】:
搜了很多,了解到view controller其实就是Viper或者MVP架构中的“View”,Presenter里面包含了逻辑……但是既然Presenter应该是容易测试的,那么放Core就好了将位置信息(例如 LocationManager 和位置更新)放入演示者?还是应该放入视图控制器并通知演示者?
【问题讨论】:
标签: ios swift core-location mvp viper-architecture
搜了很多,了解到view controller其实就是Viper或者MVP架构中的“View”,Presenter里面包含了逻辑……但是既然Presenter应该是容易测试的,那么放Core就好了将位置信息(例如 LocationManager 和位置更新)放入演示者?还是应该放入视图控制器并通知演示者?
【问题讨论】:
标签: ios swift core-location mvp viper-architecture
我会通过创建一个 LocationService 对象来解决这个问题,该对象包含所有核心位置方法,并公开它们的输出,可能会将位置更新的结果公开为流(如果您使用的是 Rx)或其他回调。
我会使用Dependency Injection(可能使用Swinject)将其注入MVP 中的presenter 层或VIPER 中的interactor 层(因为位置信息可能会影响应用程序的核心业务逻辑)。为了测试应用程序,请创建此服务的“模拟”版本以提供测试数据并将其注入测试中的演示者/交互器。
【讨论】: