摘要:什么是工廠模式工廠模式定義一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。而子類可以重寫接口方法以便創(chuàng)建的時候指定自己的對象類型抽象工廠。
什么是工廠模式
工廠模式定義一個用于創(chuàng)建對象的接口,這個接口由子類決定實例化哪一個類。該模式使一個類的實例化延遲到了子類。而子類可以重寫接口方法以便創(chuàng)建的時候指定自己的對象類型(抽象工廠)。
這個模式十分有用,尤其是創(chuàng)建對象的流程賦值的時候,比如依賴于很多設置文件等。并且,你會經(jīng)常在程序里看到工廠方法,用于讓子類定義需要創(chuàng)建的對象類型。
模式作用:
1.分步創(chuàng)建一個復雜的對象
2.解耦封裝過程和具體創(chuàng)建組件
3.無需關心組件如何組裝
工廠模式例子:
//1.工廠應該有廠長來決定運行到底哪條產(chǎn)品線 //2.消費者-》子類 var gongchang = {}; gongchang.chanyifu = function(){ this.gongren = 50; alert("我們有"+this.gongren); } gongchang.chanxie = function(){ this.gongren = 100; alert("產(chǎn)鞋子"); } gongchang.yunshu = function(){ this.gongren = 10; alert("運輸"); } gongchang.changzhang = function(para){ return new gongchang[para](); } var me = gongchang.changzhang("chanxie"); alert(me.gongren);
什么時候使用工廠模式
以下幾種情景下工廠模式特別有用:
對象的構建十分復雜
需要依賴具體環(huán)境創(chuàng)建不同實例
處理大量具有相同屬性的小對象
什么時候不該用工廠模式
不濫用運用工廠模式,有時候僅僅只是給代碼增加了不必要的復雜度,同時使得測試難以運行下去。
注意:
1、對象構建十分復雜--我們穿鞋很簡單,但是制作鞋子的過程十分復雜
2、需要依賴具體的環(huán)境創(chuàng)建不同的實例--工廠可以做鞋子,做衣服,工廠可以做我需要的鞋子(鞋子不同),然后送到指定的地方(地方可以不同),可以理解為不同的實例
3、處理大量具有相同屬性的小對象--比如買一雙鞋,沒必要
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/88771.html
摘要:設計模式工廠模式最近閱讀了幾本設計模式方面的書籍學習之余整理下來方便以后的歸納和梳理設計模式工廠模式創(chuàng)造工廠模式是一種創(chuàng)建性模式也就是一種創(chuàng)建對象的最佳實踐首先我們需要理解為什么我們需要工廠模式想象一個場景如果你要求去買一些東西板燒雞腿 Javascript設計模式-工廠模式 最近閱讀了幾本設計模式方面的書籍,學習之余整理下來,方便以后的歸納和梳理 設計模式-工廠模式 創(chuàng)造工廠模式是一...
摘要:從設計模式的分類來看簡單工廠模式是創(chuàng)建型模式。使用簡單工廠模式將會增加系統(tǒng)中類的個數(shù),在一定程序上增加了系統(tǒng)的復雜度和理解難度。簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級結構。 簡單工廠模式提供了一個接口可以根據(jù)傳遞的參數(shù)的不同創(chuàng)建不同的對象,從而將對象自身的邏輯與對象的創(chuàng)建分離開。 從設計模式的分類來看簡單工廠模式是創(chuàng)建型模式。事實上與簡單工廠模式類似的還...
摘要:工廠方法模式,通過對產(chǎn)品類的抽象使其創(chuàng)建業(yè)務,主要負責創(chuàng)建多類產(chǎn)品的實例。安全模式類安全模式類可以屏蔽使用類的錯誤造成的錯誤??梢詫⒐S方法看作是一個實例化對象的工廠類,安全起見,采用安全模式類,將創(chuàng)建對象的基類放在工廠方法類的原型中即可。 工廠方法模式,通過對產(chǎn)品類的抽象使其創(chuàng)建業(yè)務,主要負責創(chuàng)建多類產(chǎn)品的實例。前面記錄了簡單工廠模式,但是需求時不斷變化的,當需求簡單時,直接創(chuàng)建對象...
摘要:設計模式共有種,我今天先來了解一下工廠模式,其他的模式將會在后續(xù)的博客中陸續(xù)為大家講解。工廠模式主要分為簡單工廠模式和抽象工廠模式。抽象工廠模式抽象工廠模式與簡單工廠函數(shù)不同的是,抽象工廠函數(shù)會先設計好接口,具體的實現(xiàn)在子類中進行。 設計模式 設計模式(design pattern)概念:是一套反復使用、思想成熟、經(jīng)過分類和無數(shù)實戰(zhàn)設計經(jīng)驗的總結。是為了代碼可重用、可擴展、可解耦、更容...
摘要:都是構造函數(shù)模式創(chuàng)建的原生構造函數(shù)。使用構造函數(shù)創(chuàng)建對象經(jīng)歷了以下四個過程創(chuàng)建一個新對象構造函數(shù)的作用域交給新對象。 ??在創(chuàng)建對象的時候,使用對象字面量和 new Object() 構造函數(shù)的方式創(chuàng)建一個對象是最簡單最方便的方式。但是凡是處于初級階段的事物都會不可避免的存在一個問題,沒有普適性,意思就是說我要為世界上(程序中)的所有使用到的對象都使用一遍 var xxx = {} ,...
摘要:都是構造函數(shù)模式創(chuàng)建的原生構造函數(shù)。使用構造函數(shù)創(chuàng)建對象經(jīng)歷了以下四個過程創(chuàng)建一個新對象構造函數(shù)的作用域交給新對象。 ??在創(chuàng)建對象的時候,使用對象字面量和 new Object() 構造函數(shù)的方式創(chuàng)建一個對象是最簡單最方便的方式。但是凡是處于初級階段的事物都會不可避免的存在一個問題,沒有普適性,意思就是說我要為世界上(程序中)的所有使用到的對象都使用一遍 var xxx = {} ,...
閱讀 2283·2019-08-30 10:51
閱讀 842·2019-08-30 10:50
閱讀 1553·2019-08-30 10:49
閱讀 3211·2019-08-26 13:55
閱讀 1658·2019-08-26 11:39
閱讀 3468·2019-08-26 11:34
閱讀 2016·2019-08-23 18:30
閱讀 3436·2019-08-23 18:22