谁能举一个使用MVC快速IOS进行依赖注入的示例?

时间:2018-08-20 14:46:14

标签: swift model-view-controller mvvm dependency-injection

我有点坚持用mvc swift进行依赖注入。我有什么想法的MVC。我只需要知道如何使用依赖注入?为什么我们要使用它?什么是依赖注入? 而且我还需要知道什么是IOS(swift)项目的良好设计模式? MVC或MVVM?如果你们可以用示例(我的意思是用代码)给出这些问题的答案,这对我会非常有帮助。 谢谢!

模型

class Person {

    private var name: String?
    private var age: Int?

    init(name: String,age:Int){
        self.name = name
        self.age = age
    }

}

1 个答案:

答案 0 :(得分:1)

您可以使用依赖注入在运行时将依赖关系传递到对象中。这在单元测试时非常有用,因为您可以提供模拟/存根对象,并防止对象进行网络调用或更新数据库记录等。这也是一个好习惯,因为您的ViewController不会配置和初始化其依赖关系。是在课堂外完成的,因此请避免这种逻辑。以后更容易交换依赖关系。

例如,在ViewController中,您可以传递网络服务:

private let service: NetworkService

init(service: NetworkService) {
    self.service = service
    super.init(nibName: String(describing: SomeViewController.self),
               bundle: .main)
}

要对此进行单元测试,您只需传递一个模拟/存根对象,而ViewController并不是更明智的选择,它仍然可以接收数据,但它将是您提供的数据,因此是可预测的,因此更具可测试性。