팩토리 메소드

작성일

팩토리 메소드

enum SectionType: String {
    case favorite = "즐겨찾기"
    case popular = "인기"
    case recommend = "추천"
}

struct Feed {
    var title: String
    var content: String
}

// 자기 자신의 객체를 만들때
// 각 타입을 지정해주는 팩토리 메소드를 만들면 객체 생성시에 간편하다.
struct MainSection {
    let feeds: [Feed]
    let type: SectionType
    
    // 타입을 즐겨찾기로 정하고 자기 자신의 객체를 만든다.
    static func favorites(feeds: [Feed]) -> MainSection {
        return MainSection(feeds: feeds, type: .favorite)
    }
    static func populars(feeds: [Feed]) -> MainSection {
        return MainSection(feeds: feeds, type: .popular)
    }
    static func populars(feeds: [Feed]) -> MainSection {
        return MainSection(feeds: feeds, type: .recommend)
    }
}