簡(jiǎn)單工廠,工廠方法,抽象工廠 概念 對(duì)比

補(bǔ)上一個(gè)例子https://dev.tencent.com/u/gebibanxiaoming/p/DesignPatterns/git

作為一個(gè)瞎寫(xiě)的樓主今天說(shuō)一說(shuō)我對(duì)標(biāo)題這哥仨的理解。
單獨(dú)說(shuō)一個(gè)的很多了,但是總是越看越混,最后懵逼,這里我希望說(shuō)一下我對(duì)他們的一些理解,不具體說(shuō)代碼。
簡(jiǎn)單工廠:簡(jiǎn)單的說(shuō)寫(xiě)了一個(gè)創(chuàng)建方法創(chuàng)建了一類東西,具體創(chuàng)建的是哪個(gè),這個(gè)方法上會(huì)有一個(gè)參數(shù),根據(jù)這個(gè)參數(shù)再判斷具體生成那個(gè)。

那我們最熟悉的頁(yè)面說(shuō)吧,你有一個(gè)tableView,但是他們的頭試圖不一樣,有三種頭試圖對(duì)應(yīng)三種情況。這里我們就可以使用簡(jiǎn)單工廠了。
簡(jiǎn)單工廠:
第一步:首先抽離一下三種頭試圖共有的東西,比如都是通過(guò)一個(gè)方法來(lái)設(shè)置數(shù)據(jù)的。這樣就生成了一個(gè)協(xié)議,當(dāng)然你寫(xiě)成一個(gè)類也可以。
第二步:實(shí)現(xiàn)(繼承)上面的協(xié)議(類),具體寫(xiě)一下三個(gè)頭試圖的具體類。
第三步:寫(xiě)一個(gè)方法,方法返回值是基礎(chǔ)的協(xié)議(父類),來(lái)一參數(shù)用來(lái)在方法中判斷創(chuàng)建三種頭試圖的哪一種就可以了。ps:一般這個(gè)參數(shù)寫(xiě)成一個(gè)枚舉類型。

還是用上面頭試圖的例子。這次換成工廠方法來(lái)實(shí)現(xiàn)
工廠方法:
第一步:同上。
第二步:同上。
ps:上面兩步總結(jié)一下是對(duì)工廠產(chǎn)品的實(shí)現(xiàn),下面是對(duì)工廠的操作。剛剛簡(jiǎn)單工廠的那個(gè)方法里有一個(gè)判斷,這里就是把這個(gè)判斷去掉,
第三步:創(chuàng)建一個(gè)工廠的基本協(xié)議(類),來(lái)一個(gè)方法返回值是基礎(chǔ)的協(xié)議(父類),但是這里沒(méi)有那個(gè)參數(shù)了。
第四步:實(shí)現(xiàn)(繼承)工廠的協(xié)議(類),具體把每一種頭試圖對(duì)應(yīng)一個(gè)工廠實(shí)例。每一種頭試圖的創(chuàng)建由對(duì)應(yīng)的工廠來(lái)實(shí)現(xiàn)。

對(duì)比一下啊。工廠方法相當(dāng)于把簡(jiǎn)單工廠的創(chuàng)建方法拆分成到三個(gè)子類去寫(xiě)了。當(dāng)然具體的好處不是表面寫(xiě)的這樣簡(jiǎn)單。

要說(shuō)抽象工廠我得把例子改一下,還是那個(gè)tableView,現(xiàn)在對(duì)應(yīng)三種情況時(shí),他們的頭試圖和尾試圖要一起變化。就是從頭試圖的改變,變成了一組頭尾試圖的改變。

步驟這里我就不寫(xiě)了,簡(jiǎn)單的說(shuō)就是把一種工廠產(chǎn)品變成了兩種工廠產(chǎn)品。流程上和工廠方法是一樣一樣的。

文章最后還是那句話,我一種想用自己的理解來(lái)簡(jiǎn)便的說(shuō)清楚一些事情,所以有些地方可能說(shuō)的就不對(duì),希望大神指出

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評(píng)論 19 139
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,778評(píng)論 11 349
  • BaseServer 和 BaseRequestHandler Python為網(wǎng)絡(luò)編程提高了更高級(jí)的封裝。Sock...
    人世間閱讀 5,312評(píng)論 5 8
  • 我不會(huì)說(shuō)出有多想聽(tīng)見(jiàn) 你的聲音和故事 在未曾意料也不敢渴望時(shí) 忽然被一種溫柔輕輕觸動(dòng) 我等了你的歌聲,在夢(mèng)中你 黑...
    佑荑閱讀 223評(píng)論 0 0
  • 當(dāng)歸不歸,云胡不悲。 山林隱鹿,天卷云垂。 漁歌晚響,雁去已回。 此去無(wú)定,隰涸可為。 一十一年,不見(jiàn)胭脂。 可問(wèn)...
    不渡寒江閱讀 249評(píng)論 0 1

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