亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

javascript實(shí)現(xiàn)簡(jiǎn)單工廠模式

Code4App / 1611人閱讀

摘要:從設(shè)計(jì)模式的分類(lèi)來(lái)看簡(jiǎn)單工廠模式是創(chuàng)建型模式。使用簡(jiǎn)單工廠模式將會(huì)增加系統(tǒng)中類(lèi)的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。簡(jiǎn)單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無(wú)法形成基于繼承的等級(jí)結(jié)構(gòu)。

簡(jiǎn)單工廠模式提供了一個(gè)接口可以根據(jù)傳遞的參數(shù)的不同創(chuàng)建不同的對(duì)象,從而將對(duì)象自身的邏輯與對(duì)象的創(chuàng)建分離開(kāi)。

從設(shè)計(jì)模式的分類(lèi)來(lái)看簡(jiǎn)單工廠模式是創(chuàng)建型模式。事實(shí)上與簡(jiǎn)單工廠模式類(lèi)似的還有工廠模式和抽象工廠模式。那它們有什么區(qū)別呢?

我們從名字入手分析一下,簡(jiǎn)單 ,為什么叫簡(jiǎn)單工廠模式?因?yàn)樗鼉H僅只是分離了對(duì)象的創(chuàng)建和對(duì)象的使用,一旦有新的產(chǎn)品加入,就必須修改簡(jiǎn)單工廠中對(duì)象創(chuàng)建的方法,這樣并沒(méi)有遵守對(duì)修改封閉,對(duì)擴(kuò)展開(kāi)放的原則。所以這個(gè)模式的抽象和分離的還不夠徹底,相比而言工廠模式就在簡(jiǎn)單工廠模式的基礎(chǔ)之上加了一層對(duì)工廠的抽象,具體的產(chǎn)品由具體的工廠來(lái)創(chuàng)建,這樣新增產(chǎn)品就只需要新增一個(gè)工廠就行,并不會(huì)對(duì)原來(lái)的代碼產(chǎn)生影響,其次 工廠 ,這個(gè)對(duì)應(yīng)其創(chuàng)建型模式,用于創(chuàng)建對(duì)象。

應(yīng)用場(chǎng)景

JDK中的工具類(lèi)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)

簡(jiǎn)單工廠模式把對(duì)象創(chuàng)建的邏輯進(jìn)行了封裝,在使用的對(duì)象的時(shí)候不需要了解創(chuàng)建的細(xì)節(jié)

創(chuàng)建對(duì)象可以使用對(duì)應(yīng)的參數(shù)來(lái)確定創(chuàng)建的具體對(duì)象,而不需要知道對(duì)象的類(lèi)名

缺點(diǎn)

由于工廠類(lèi)集中了所有產(chǎn)品創(chuàng)建邏輯,一旦不能正常工作,整個(gè)系統(tǒng)都要受到影響。

使用簡(jiǎn)單工廠模式將會(huì)增加系統(tǒng)中類(lèi)的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。

系統(tǒng)擴(kuò)展困難,一旦添加新產(chǎn)品就不得不修改工廠邏輯,在產(chǎn)品類(lèi)型較多時(shí),有可能造成工廠邏輯過(guò)于復(fù)雜,不利于系統(tǒng)的擴(kuò)展和維護(hù)。

簡(jiǎn)單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無(wú)法形成基于繼承的等級(jí)結(jié)構(gòu)。

代碼實(shí)例 代碼地址:simple-factory

歡迎大家fork和pull request,希望大家一起能夠能夠一起交流學(xué)習(xí)設(shè)計(jì)模式,幫助我們用javascript寫(xiě)更專(zhuān)業(yè)的代碼

參考:

簡(jiǎn)單工廠模式

simple-factory-pattern

factory_pattern

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/78401.html

相關(guān)文章

  • Javascript設(shè)計(jì)模式-工廠模式

    摘要:設(shè)計(jì)模式工廠模式最近閱讀了幾本設(shè)計(jì)模式方面的書(shū)籍學(xué)習(xí)之余整理下來(lái)方便以后的歸納和梳理設(shè)計(jì)模式工廠模式創(chuàng)造工廠模式是一種創(chuàng)建性模式也就是一種創(chuàng)建對(duì)象的最佳實(shí)踐首先我們需要理解為什么我們需要工廠模式想象一個(gè)場(chǎng)景如果你要求去買(mǎi)一些東西板燒雞腿 Javascript設(shè)計(jì)模式-工廠模式 最近閱讀了幾本設(shè)計(jì)模式方面的書(shū)籍,學(xué)習(xí)之余整理下來(lái),方便以后的歸納和梳理 設(shè)計(jì)模式-工廠模式 創(chuàng)造工廠模式是一...

    feng409 評(píng)論0 收藏0
  • JavaScript工廠模式

    摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類(lèi)都具有同一抽象父類(lèi)。工廠方法模式總結(jié)工廠方法模式是簡(jiǎn)單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說(shuō)一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡(jiǎn)單工廠模式 工廠方法模式 抽象工廠模式 1.簡(jiǎn)單工廠模式 簡(jiǎn)單工廠模式:又稱為靜態(tài)工廠方法...

    oujie 評(píng)論0 收藏0
  • 從ES6重新認(rèn)識(shí)JavaScript設(shè)計(jì)模式(二): 工廠模式

    摘要:簡(jiǎn)單工廠模式簡(jiǎn)單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類(lèi)的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對(duì)象的工作推遲到子類(lèi)中,這樣核心類(lèi)就變成了抽象類(lèi)。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來(lái)創(chuàng)建對(duì)象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對(duì)象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...

    Reducto 評(píng)論0 收藏0
  • 從ES6重新認(rèn)識(shí)JavaScript設(shè)計(jì)模式(二): 工廠模式

    摘要:簡(jiǎn)單工廠模式簡(jiǎn)單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類(lèi)的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對(duì)象的工作推遲到子類(lèi)中,這樣核心類(lèi)就變成了抽象類(lèi)。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來(lái)創(chuàng)建對(duì)象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對(duì)象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...

    szysky 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<