[iOS Swift] Factory——工廠模式的使用與理解

工廠模式屬于創(chuàng)建型模式,用于封裝復(fù)雜對(duì)象的創(chuàng)建過程,使其能夠在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建對(duì)象。

示例代碼:

protocol Currency {
    func symbol() -> String
    func code() -> String
}

class Euro : Currency {
    func symbol() -> String {
        return "€"
    }

    func code() -> String {
        return "EUR"
    }
}

class UnitedStatesDolar : Currency {
    func symbol() -> String {
        return "$"
    }

    func code() -> String {
        return "USD"
    }
}

enum Country {
    case UnitedStates, Spain, UK, Greece
}

enum CurrencyFactory {
    static func currencyForCountry(country:Country) -> Currency? {

        switch country {
            case .Spain, .Greece :
                return Euro()
            case .UnitedStates :
                return UnitedStatesDolar()
            default:
                return nil
        }
    }
}

使用方法:

let noCurrencyCode = "No Currency Code Available"

CurrencyFactory.currencyForCountry(country: .Greece)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(country: .Spain)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(country: .UnitedStates)?.code() ?? noCurrencyCode
CurrencyFactory.currencyForCountry(country: .UK)?.code() ?? noCurrencyCode

理解

從使用角度更容易理解,多種類型的實(shí)例都可以通過統(tǒng)一的接口動(dòng)態(tài)創(chuàng)建,只需要?jiǎng)討B(tài)傳入相應(yīng)的參數(shù)即可。

工廠模式比較適合相對(duì)復(fù)雜對(duì)象的創(chuàng)建,簡(jiǎn)單類也如此封裝反而增加了代碼的復(fù)雜度。

Swift可以通過枚舉來創(chuàng)建工廠類。

(用工廠類來實(shí)現(xiàn)ViewController的分配是否合理?可以試試看。)

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 風(fēng)不蕭兮水不寒, 不知不覺十一年。 身不在甘心在岸, 屬予作文以紀(jì)念。 二零零五已酉年, 八月十日初抵甘。 下車伊...
    紅圖偉業(yè)閱讀 579評(píng)論 0 1
  • 就算不被看好,但只要你我看好;就算前方多阻,也要報(bào)之以歌;只要溫柔相待,方不負(fù)似水流年。
    花芽?jī)?/span>閱讀 227評(píng)論 0 0
  • 今天受到一個(gè)人的委托 以愛情里,爭(zhēng)論對(duì)錯(cuò)真的重要嗎? 為題來和大家探討。 在今天這個(gè)自由戀愛的年代戀愛已經(jīng)非常非...
    畫里畫不出來的畫閱讀 1,930評(píng)論 0 0
  • 中秋臨時(shí),萬家燈火通明, 人潮擁擠,沖向家的方向, 秋風(fēng)蕭瑟,唯獨(dú)你無方向, 涼風(fēng)瑟瑟,行于人海之中, 頓覺孤獨(dú),...
    若幽蘭閱讀 271評(píng)論 0 1

友情鏈接更多精彩內(nèi)容