[英]Typhoon : Obtain a Typhoon-built instance of a class without depending on Typhoon
[英]Using Typhoon, create instance of a subclass of a class which has dependencies
我正在使用Typhoon在iOS的Swift中進行依賴項注入。
我創建了一個程序集,將依賴項注入一個名為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())
}
}
}
}
現在,我正在嘗試使用如下工廠方法創建BaseRequest的子類:
class DownloadLibrariesRequest: BaseRequest {
var libraries:Array<String> = []
class func downloadLibraries(libraries:Array<String>)->Void{
let request: DownloadLibrariesRequest = DownloadLibrariesRequest(.....)
request.libraries = libraries
}
}
我需要能夠創建DownloadLibrariesRequest的實例並為BaseRequest調用NetworkAssembly ,因為我需要在子類中使用另一個init。 另外,我需要提及的是,我將有大約50個此類子類,因此為所有這些子類創建程序集在目前看來還不太好。
要創建具有共享配置的定義,為避免重復,請使用父功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.