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