JS設計模式之工廠模式

2021-07-12 03:46:48 字數 1314 閱讀 8804

介紹

工廠模式建立物件(視為工廠裡的產品)時無需指定建立物件的具體類,而是定義乙個用於建立物件的介面,這個介面由子類決定例項化哪乙個類。該模式使乙個類的例項化延遲到了子類。而子類可以重寫介面方法以便建立的時候指定自己的物件型別。

這個模式十分有用,尤其是建立物件按流程賦值的時候,比如依賴於很多設定檔案等。並且,也會經常在程式裡看到工廠方法,用於讓子類定義需要建立的物件型別。

正文

工廠模式也是很簡單,直接上**,在**中就會很快明白了:

var productmanager = {};

productmanager.createproducta = function

() productmanager.createproductb = function

() productmanager.factory = function

(typetype)

productmanager.factory("createproducta");

上面這段**也太工廠模式了,那就來個實戰例子,假如我們想在網頁麵裡插入一些元素,而這些元素型別不固定,可能是,也有可能是連線,甚至可能是文字,根據工廠模式的定義,我們需要定義工廠類和相應的子類,先來定義子類的具體實現(也就是子函式):

var page = page || {};

page.dom = page.dom || {};

//子函式1:處理文字

page.dom.text = function

() ;

};page.dom.link = function

() ;

};page.dom.image = function

() ;

};

那如何定義工廠處理函式呢?其實很簡單:

page.dom.factory = function (type)
使用方式如下:

var o = page.dom.factory('link');

o.url = '';

o.insert(document.body);

讀完**,相信工廠模式也就了然於心了。

總結

以下幾種情景工廠模式特別有用:

物件的構建十分複雜

需要依賴具體環境建立不同例項

處理大量具有相同屬性的小物件

但是也不能濫用工廠模式,否則會給**增加不必要的複雜度,同時使得測試難以執行下去。

js設計模式 工廠模式

一.介紹 工廠模式主要出現在物件導向建立例項的過程中,其本質是為了更方便生成例項,因此 在遇到使用new時,就要是否要使用工廠模式 二.實現 1.uml類圖 2.實現 class product init fn1 fn2 class creator 測試 let creator new creato...

js設計模式 工廠模式

一句話總結 在建構函式外面增加乙個函式,每次建立的時候,呼叫外層函式,不用去管建構函式的內部是如何實現的。去麵館吃麵,給老闆說 來碗雜醬麵 老闆把麵端上來。在這個過程中,我們不會去關心,面是怎麼做出來的,是如何做的。給老闆說 來碗雜醬麵 就給你做雜醬麵,來碗番茄面,就給你做番茄面。這就是乙個工廠模式...

設計模式 設計模式之工廠模式

工廠方法模式 建立模式 使用場景?作用?形態?場景 大量類似的實體類 要建立的實體類都是同一本質的東西 披薩 有部分類似功能 準備 烘烤 切法 實現方式不一樣 準備的材料不同 烘烤時間不同 切法不同 將繁瑣複雜的建立類的過程聚集在一起,有序清晰 把具體例項化的過程從客戶 中抽離 作用 1 將建立物件...