[英]Using Typhoon, create instance of a subclass of a class which has dependencies
I am using Typhoon for dependencies injection in Swift for iOS. 我正在使用Typhoon在iOS的Swift中进行依赖项注入。
I have created an assembly to inject dependencies in a class called BaseRequest like this: 我创建了一个程序集,将依赖项注入一个名为BaseRequest的类中,如下所示:
public class NetworkAssembly: TyphoonAssembly {
public dynamic func baseRequest() -> AnyObject {
return TyphoonDefinition.withClass(BaseRequest.self){
(definition) in
definition.useInitializer("initWithRetryCount:userUmbrella:networkQueueManager:"){
(initializer) in
initializer.injectParameterWith((TyphoonConfig("network.request.retry.count") as! NSNumber).integerValue)
initializer.injectParameterWith(self.coreComponents.userUmbrella())
initializer.injectParameterWith(self.networkQueueManager())
}
}
}
}
Now, I am trying to create a subclass of BaseRequest with a factory method like this: 现在,我正在尝试使用如下工厂方法创建BaseRequest的子类:
class DownloadLibrariesRequest: BaseRequest {
var libraries:Array<String> = []
class func downloadLibraries(libraries:Array<String>)->Void{
let request: DownloadLibrariesRequest = DownloadLibrariesRequest(.....)
request.libraries = libraries
}
}
I need to be able to create an instance of DownloadLibrariesRequest and call the NetworkAssembly for BaseRequest since I need to use another init in the subclasses. 我需要能够创建DownloadLibrariesRequest的实例并为BaseRequest调用NetworkAssembly ,因为我需要在子类中使用另一个init。 Also, I need to mention that I will have around 50 such subclasses, so creating assemblies for all of them doesn't sound too great at the moment.
另外,我需要提及的是,我将有大约50个此类子类,因此为所有这些子类创建程序集在目前看来还不太好。
要创建具有共享配置的定义,为避免重复,请使用父功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.