[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)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市盏浇,隨后出現(xiàn)的幾起案子变丧,更是在濱河造成了極大的恐慌,老刑警劉巖绢掰,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痒蓬,死亡現(xiàn)場(chǎng)離奇詭異童擎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)攻晒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門顾复,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鲁捏,你說我怎么就攤上這事芯砸。” “怎么了给梅?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵假丧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我动羽,道長(zhǎng)包帚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任曹质,我火速辦了婚禮婴噩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羽德。我一直安慰自己,他們只是感情好迅办,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布宅静。 她就那樣靜靜地躺著,像睡著了一般站欺。 火紅的嫁衣襯著肌膚如雪姨夹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天矾策,我揣著相機(jī)與錄音磷账,去河邊找鬼。 笑死贾虽,一個(gè)胖子當(dāng)著我的面吹牛逃糟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蓬豁,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼绰咽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了地粪?” 一聲冷哼從身側(cè)響起取募,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蟆技,沒想到半個(gè)月后玩敏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斗忌,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年旺聚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飞蹂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翻屈,死狀恐怖陈哑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伸眶,我是刑警寧澤惊窖,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站厘贼,受9級(jí)特大地震影響界酒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嘴秸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一毁欣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岳掐,春花似錦凭疮、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纲酗,卻和暖如春衰腌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背觅赊。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工右蕊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吮螺。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓饶囚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親规脸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坯约,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

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