摘要:從設(shè)計(jì)模式的分類來看簡單工廠模式是創(chuàng)建型模式。使用簡單工廠模式將會(huì)增加系統(tǒng)中類的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級(jí)結(jié)構(gòu)。
簡單工廠模式提供了一個(gè)接口可以根據(jù)傳遞的參數(shù)的不同創(chuàng)建不同的對象,從而將對象自身的邏輯與對象的創(chuàng)建分離開。
從設(shè)計(jì)模式的分類來看簡單工廠模式是創(chuàng)建型模式。事實(shí)上與簡單工廠模式類似的還有工廠模式和抽象工廠模式。那它們有什么區(qū)別呢?
我們從名字入手分析一下,簡單 ,為什么叫簡單工廠模式?因?yàn)樗鼉H僅只是分離了對象的創(chuàng)建和對象的使用,一旦有新的產(chǎn)品加入,就必須修改簡單工廠中對象創(chuàng)建的方法,這樣并沒有遵守對修改封閉,對擴(kuò)展開放的原則。所以這個(gè)模式的抽象和分離的還不夠徹底,相比而言工廠模式就在簡單工廠模式的基礎(chǔ)之上加了一層對工廠的抽象,具體的產(chǎn)品由具體的工廠來創(chuàng)建,這樣新增產(chǎn)品就只需要新增一個(gè)工廠就行,并不會(huì)對原來的代碼產(chǎn)生影響,其次 工廠 ,這個(gè)對應(yīng)其創(chuàng)建型模式,用于創(chuàng)建對象。
應(yīng)用場景
JDK中的工具類java.tet.DateFormat,用于格式化一個(gè)本地日期或時(shí)間。
public final static DateFormat getDateInstance(); public final static DateFormat getDateInstance(int style); public final static DateFormat getDateInstance(int style,Locale locale);
java加密技術(shù)
獲取不同加密算法的秘鑰生成器
KeyGenerator keyGen=KeyGenerator.getInstance("DESede");
創(chuàng)建密碼器
Cipher cp=Cipher.getInstance("DESede");UML圖 優(yōu)缺點(diǎn) 優(yōu)點(diǎn)
簡單工廠模式把對象創(chuàng)建的邏輯進(jìn)行了封裝,在使用的對象的時(shí)候不需要了解創(chuàng)建的細(xì)節(jié)
創(chuàng)建對象可以使用對應(yīng)的參數(shù)來確定創(chuàng)建的具體對象,而不需要知道對象的類名
缺點(diǎn)由于工廠類集中了所有產(chǎn)品創(chuàng)建邏輯,一旦不能正常工作,整個(gè)系統(tǒng)都要受到影響。
使用簡單工廠模式將會(huì)增加系統(tǒng)中類的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。
系統(tǒng)擴(kuò)展困難,一旦添加新產(chǎn)品就不得不修改工廠邏輯,在產(chǎn)品類型較多時(shí),有可能造成工廠邏輯過于復(fù)雜,不利于系統(tǒng)的擴(kuò)展和維護(hù)。
簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級(jí)結(jié)構(gòu)。
代碼實(shí)例 代碼地址:simple-factory歡迎大家fork和pull request,希望大家一起能夠能夠一起交流學(xué)習(xí)設(shè)計(jì)模式,幫助我們用javascript寫更專業(yè)的代碼
參考:
簡單工廠模式
simple-factory-pattern
factory_pattern
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78401.html
摘要:設(shè)計(jì)模式工廠模式最近閱讀了幾本設(shè)計(jì)模式方面的書籍學(xué)習(xí)之余整理下來方便以后的歸納和梳理設(shè)計(jì)模式工廠模式創(chuàng)造工廠模式是一種創(chuàng)建性模式也就是一種創(chuàng)建對象的最佳實(shí)踐首先我們需要理解為什么我們需要工廠模式想象一個(gè)場景如果你要求去買一些東西板燒雞腿 Javascript設(shè)計(jì)模式-工廠模式 最近閱讀了幾本設(shè)計(jì)模式方面的書籍,學(xué)習(xí)之余整理下來,方便以后的歸納和梳理 設(shè)計(jì)模式-工廠模式 創(chuàng)造工廠模式是一...
摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態(tài)工廠方法...
摘要:簡單工廠模式簡單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對象決定創(chuàng)建某一種產(chǎn)品對象類的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創(chuàng)建對象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...
摘要:簡單工廠模式簡單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對象決定創(chuàng)建某一種產(chǎn)品對象類的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創(chuàng)建對象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...
閱讀 857·2021-10-11 10:59
閱讀 2792·2019-08-30 15:43
閱讀 2129·2019-08-30 11:08
閱讀 1647·2019-08-29 15:20
閱讀 1002·2019-08-29 13:53
閱讀 486·2019-08-26 13:24
閱讀 1633·2019-08-26 13:24
閱讀 2820·2019-08-26 12:08