摘要:所謂的工廠模式,顧名思義就是成批量地生產模式。工廠方法將類的實例化延遲到子類首先是創建構造函數,區別物種的不同屬性。工廠模式適用于以下場景實例對象較復雜。設計模式更代表的是一種系統思想,而不是重復的代碼堆砌。
所謂的工廠模式,顧名思義就是成批量地生產模式。它的核心作用也是和現實中的工廠一樣利用重復的代碼最大化地產生效益。在javascript中,它常常用來生產許許多多相同的實例對象,在代碼上做到最大的利用。工廠模式定義創建對象的接口,但是讓子類決定實例化哪個類。工廠方法將類的實例化延遲到子類
首先是創建構造函數,區別物種的不同屬性。
//定義人的構造函數 var man = function(o) { this.foots = o.foot || 2; this.legs = o.legs || 2; } //定義魚的構造函數 var fish = function(o) { this.qi = o.qi || 4; this.foots = o.foots || 9; } //定義外星人的構造函數 var et = function(o) { this.legs = o.legs ||10; this.eyes = o.eyes || 6; }
接下來我們再創建一個工廠的構造函數:
//工廠函數的構造函數 var F = function() {}
接著在原型上設置它的默認方法:
//f的默認輸出實例函數; F.prototype.vehicleClass = man;
此時,該工廠函數默認生產的是man的實例,在不配置的情況下我們產生的是人類的實例,然后我們對vehicleClass這個函數進行擴充,生成一個新的函數,此函數可以對不同的類別進行甄別,
//類的甄別函數 F.prototype.vehicleCreate = function(o) { switch(o.vehicleType) { case "man" : this.vehicleClass = man; break; case "fish" : this.vehicleClass = fish; break; case "et" : this.vehicleClass = et; break; } //返回實例 return this.vehicleClass(o); }
通過swith語句的索引,可以通過vehicleType進行不同類的實例化。那么我們看看這個類是如何工作的。首先時實例工廠類.
var Factory = new F();
然后調用vehicleCreate方法,通過傳參獲取不同實例的對象。
var Man = Factory.vehicleCreate({ vehicleType : "man", legs : 2, foots : 2 });
這樣,通過vehicleType的值,我們可以告訴工廠類我們希望輸出的物種,然后通過其他的屬性,我們可以控制該物種實例的各種基礎屬性。
工廠模式適用于以下場景:
實例對象較復雜。
多對象的簡單,快速的實現。
跟享元模類似,適用于擁有共同屬性的對象。
只需要滿足一個API契約的其他對象的實例對象。
工廠模式實現起來較為簡單,不僅僅是工廠模式,幾乎所有模式的代碼看起來都比較簡單。設計模式其實就是把經常用到的代碼歸納總結系統的表達而已。在之后的應用中,我們可以系統地去想到這些模式并且運用它們。設計模式更代表的是一種系統思想,而不是重復的代碼堆砌。
引用鏈接
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99144.html
摘要:簡單工廠模式簡單工廠模式又叫靜態工廠模式,由一個工廠對象決定創建某一種產品對象類的實例。工廠方法模式工廠方法模式的本意是將實際創建對象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創建對象的一種最常用的設計模式。我們不暴露創建對象的具體邏輯,而是將將邏輯封裝在一個函數中,那么這個函數就可以被視為一個工廠。工廠模式根據抽象程度的不...
摘要:簡單工廠模式簡單工廠模式又叫靜態工廠模式,由一個工廠對象決定創建某一種產品對象類的實例。工廠方法模式工廠方法模式的本意是將實際創建對象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創建對象的一種最常用的設計模式。我們不暴露創建對象的具體邏輯,而是將將邏輯封裝在一個函數中,那么這個函數就可以被視為一個工廠。工廠模式根據抽象程度的不...
摘要:簡單工廠模式又叫靜態工廠方法模式,由一個工廠對象決定創建某一種產品對象類的實例。主要用來創建同一類對象。場景一比如體育商店賣體育器材,里面有很多體育用品,及相關介紹,當我們想買一個籃球及相關介紹時,只需要溫售貨員,他會幫你找到所有的東西。 簡單工廠模式又叫靜態工廠方法模式,由一個工廠對象決定創建某一種產品對象類的實例。主要用來創建同一類對象。場景一:比如體育商店賣體育器材,里面有很多體...
摘要:注意事項聲明函數時候處理業務邏輯區分和單例的區別,配合單例實現初始化構造函數大寫字母開頭推薦注意的成本。簡單工廠模式使用一個類通常為單體來生成實例。 @(書籍閱讀)[JavaScript, 設計模式] 常見設計模式 一直對設計模式不太懂,花了一下午加一晚上的時間,好好的看了看各種設計模式,并總結了一下。 設計模式簡介 設計模式概念解讀 設計模式的發展與在JavaScript中的應用 ...
閱讀 1006·2023-04-25 14:45
閱讀 2780·2021-09-30 09:59
閱讀 3125·2021-09-22 15:48
閱讀 2428·2019-08-30 15:55
閱讀 3475·2019-08-30 15:44
閱讀 548·2019-08-29 14:07
閱讀 3416·2019-08-26 13:45
閱讀 541·2019-08-26 11:31