| 企服解答
工廠模式有3種,優(yōu)點(diǎn)也各不相同:1、簡(jiǎn)單工廠模式可以決定在什么時(shí)候創(chuàng)建哪一個(gè)產(chǎn)品類的實(shí)例;2、工廠方法模式有非常良好的擴(kuò)展性;3、抽象工廠模式降低了模塊間的耦合性,提高了團(tuán)隊(duì)開發(fā)效率。
設(shè)計(jì)模式中的工廠模式優(yōu)點(diǎn)有哪些
1、簡(jiǎn)單工廠模式可以決定在什么時(shí)候創(chuàng)建哪一個(gè)產(chǎn)品類的實(shí)例
工廠類含有必要的判斷邏輯,可以決定在什么時(shí)候創(chuàng)建哪一個(gè)產(chǎn)品類的實(shí)例,客戶端可以免除直接創(chuàng)建產(chǎn)品對(duì)象的責(zé)任,而僅僅"消費(fèi)"產(chǎn)品。
簡(jiǎn)單工廠模式通過這種做法實(shí)現(xiàn)了對(duì)責(zé)任的分割,能夠根據(jù)外界給定的信息,決定究竟應(yīng)該創(chuàng)建哪個(gè)具體類的對(duì)象。通過它,外界與具體類隔離開來,偶合性低。明確區(qū)分了各自的職責(zé)和權(quán)力,有利于整個(gè)軟件體系結(jié)構(gòu)的優(yōu)化。
2、工廠方法模式有非常良好的擴(kuò)展性
工廠方法模式每個(gè)具體工廠類只完成單一任務(wù),代碼簡(jiǎn)潔。工廠方法模式完全滿足OCP,即它有非常良好的擴(kuò)展性。
3、抽象工廠模式降低了模塊間的耦合性,提高了團(tuán)隊(duì)開發(fā)效率
抽象工廠模式主要在于應(yīng)對(duì)“新系列”的需求變化。
它只需改變具體的工廠即可使用不同的產(chǎn)品配置,這是因?yàn)橐粋€(gè)抽象工廠創(chuàng)建了一個(gè)完整的產(chǎn)品系列,所以整個(gè)產(chǎn)品系列會(huì)立刻改變。它有利于產(chǎn)品的一致性。當(dāng)一個(gè)系列的產(chǎn)品對(duì)象被設(shè)計(jì)成一起工作時(shí),一個(gè)應(yīng)用一次只能使用同一個(gè)系列中的對(duì)象,這一點(diǎn)很重要,而抽象工廠很容易實(shí)現(xiàn)這一點(diǎn)。抽象工廠模式有助于這樣的團(tuán)隊(duì)的分工,降低了模塊間的耦合性,提高了團(tuán)隊(duì)開發(fā)效率。
| 擴(kuò)展閱讀
1、簡(jiǎn)單工廠模式:
該模式不屬于GoF列出的23種模式之一,但它確是學(xué)習(xí)其他幾個(gè)工廠模式的基礎(chǔ),也是最容易的。
它實(shí)現(xiàn)了創(chuàng)建對(duì)象和使用對(duì)象分離的原則,由工廠類來負(fù)責(zé)對(duì)象的創(chuàng)建。比如,一個(gè)形狀Shape抽象類,它是其他具體形狀類的父類。
該模式存在缺陷:當(dāng)有新的產(chǎn)品(如具體形狀Heart)需要添加時(shí),不得不修改工廠類的源代碼,這違背了設(shè)計(jì)模式的開閉原則(有關(guān)開閉原則請(qǐng)讀者自行了解)。
2、工廠方法模式:
這是解決簡(jiǎn)單工廠模式缺陷的升級(jí)模式。
當(dāng)類的數(shù)量龐大時(shí),可以給每一個(gè)類構(gòu)建對(duì)應(yīng)的工廠類,調(diào)用者不必考慮類的創(chuàng)建而只用來配置和使用類的對(duì)象。
工廠方法模式在具體的工廠類中也可以提供多種方法來初始化創(chuàng)建類的實(shí)例,調(diào)用者只需傳入需要的參數(shù)即可。每個(gè)具體的工廠類對(duì)應(yīng)具體的產(chǎn)品類,都實(shí)現(xiàn)了一個(gè)抽象工廠接口和抽象產(chǎn)品接口,因此此模式也稱多態(tài)工廠模式。
缺點(diǎn):當(dāng)類過多時(shí)勢(shì)必引起類文件的臃腫,增加了代碼的開銷。所以,抽象工廠模式隨之出現(xiàn)了。
3、抽象工廠模式:
可以創(chuàng)建一系列相關(guān)聯(lián)的產(chǎn)品,而不是對(duì)每一個(gè)產(chǎn)品都對(duì)應(yīng)一個(gè)工廠類。
它與工廠方法模式的區(qū)別在于:工廠方法對(duì)每一個(gè)產(chǎn)品都提供一個(gè)工廠類,而抽象工廠模式統(tǒng)一為相關(guān)聯(lián)的產(chǎn)品(一個(gè)產(chǎn)品家族,如某品牌制作的電視、電腦等;某樣式庫下的按鈕、文本框等)提供一個(gè)具體工廠類,在此類中定義用來創(chuàng)建各個(gè)具體產(chǎn)品的各個(gè)方法,這樣一個(gè)工廠類可以創(chuàng)建一個(gè)產(chǎn)品族(包含多個(gè)相關(guān)聯(lián)產(chǎn)品)的對(duì)象,極大減少了類的數(shù)量。
[免責(zé)聲明]
文章標(biāo)題: 設(shè)計(jì)模式中的工廠模式優(yōu)點(diǎn)有哪些
文章內(nèi)容為網(wǎng)站編輯整理發(fā)布,僅供學(xué)習(xí)與參考,不代表本網(wǎng)站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)溝通。發(fā)送郵件至36dianping@36kr.com,我們會(huì)在3個(gè)工作日內(nèi)處理。