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