簡體   English   中英

使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM