【问题标题】:web calling function using mvvm pattern in swiftswift中使用mvvm模式的网络调用函数
【发布时间】:2019-07-03 15:13:09
【问题描述】:

我正在尝试使用 swift 实现 MVVM 设计模式,但我不清楚下面提到的一些事情。

我需要获取鲜花列表并将其显示为表格视图。 我将调用 web api,它将提供不同类型的 Flower 的详细信息。 所以我创建了 Class Flower (as Model) 和 FlowerViewModel 类作为 (ViewModel) 并且 ViewController 里面有 tableview。

但不确定,我应该在哪个类中调用 web api 并解析 JSON 响应? 到目前为止,我将这两个都放在了 FlowerViewModel 类中

请建议是否需要对这两个函数的放置进行更正或我的假设是正确的。

谢谢

【问题讨论】:

    标签: ios swift web mvvm


    【解决方案1】:

    Web Service API 类应单独遵循单一职责原则 (SRP),但调用者或此类的实例应在视图模型中。 ViewModel 委托服务调用Web API,并从解析的 响应中获取将这些项目绑定到UITableView 的花朵列表。这就是我在MVVM 中实现的方式。

    说清楚:

    class FlowerFetcher {
        func getFlowers(callback: ([Flowers])->()) {}
    }
    
    class FlowerViewModel {
        private var flowerService: FlowerFetcher?
    
        init(flowerService: FlowerFetcher?) {}
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 2012-08-08
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      相关资源
      最近更新 更多