依赖注入迅速
#dependencyinjection #ios #swift #dependency

用于为属性提供初始值的方法。
这种方法的目的是获取松散的耦合代码。

有三种可以获得这一点 -

通过初始化 - > 在这种类型中,我们需要传递类的初始化值

class DemoVC:UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        //passing dependency value by init func
        let obj = Language(langName: "Swift")
        print(obj.name)
    }
}

class Language{
    var name:String
    ///1. Initialisation Dependency Injection
    init(langName:String) {
        self.name = langName
    }
}

通过函数 - > 在这种类型中,我们将初始值作为函数参数传递。并且类属性是从此参数初始化的。

class DemoVC:UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        //setting dependency value passing parameter in method
        let obj = Language()
        obj.getLanuageDetails(lanugage: "Swift")
    }
}

class Language{
    private var name:String!
    func getLanuageDetails(lanugage:String){
        name = lanugage
        print("Your have shown interest in \(lanugage) Language.")
    }
}

by属性 - > < / strong>在这里我们通常创建 /访问类属性并直接设置值。

class DemoVC:UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        //setting dependency value by setting property directly
        let obj = Language()
        obj.name = "Objective C"
    }
}

class Language{
    var name:String = "Swift"
}