2018년 6월 25일 월요일

Generic Type 에서 Factory 함수 정의 하는 방법

리턴타입에 타입매개변수를 정의해도되고, 생략해도 된다.

class TempleteClass<T> {
    var value: T
    
    init(param: T) {
        self.value = param
    }
    
    static func create1(param: T) -> TempleteClass<T> {
        let request = TempleteClass(param: param)
        return request
    }
    
    static func create2(param: T) -> TempleteClass {
        let request = TempleteClass(param: param)
        return request
    }
}


extension TempleteClass {
    static func create3(param: T) -> TempleteClass<T> {
        let request = TempleteClass(param: param)
        return request
    }
    
    static func create4(param: T) -> TempleteClass {
        let request = TempleteClass(param: param)
        return request
    }

}