【问题标题】:Where should I put Core Location methods in a VIPER/MVP iOS project?我应该将核心位置方法放在 VIPER/MVP iOS 项目中的什么位置?
【发布时间】:2018-06-27 10:58:21
【问题描述】:

搜了很多,了解到view controller其实就是Viper或者MVP架构中的“View”,Presenter里面包含了逻辑……但是既然Presenter应该是容易测试的,那么放Core就好了将位置信息(例如 LocationManager 和位置更新)放入演示者?还是应该放入视图控制器并通知演示者?

【问题讨论】:

    标签: ios swift core-location mvp viper-architecture


    【解决方案1】:

    我会通过创建一个 LocationService 对象来解决这个问题,该对象包含所有核心位置方法,并公开它们的输出,可能会将位置更新的结果公开为流(如果您使用的是 Rx)或其他回调。

    我会使用Dependency Injection(可能使用Swinject)将其注入MVP 中的presenter 层或VIPER 中的interactor 层(因为位置信息可能会影响应用程序的核心业务逻辑)。为了测试应用程序,请创建此服务的“模拟”版本以提供测试数据并将其注入测试中的演示者/交互器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-24
      • 2010-10-11
      • 2012-07-22
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多