摘要:對解耦是很有用對。設(shè)計(jì)模式系列文章設(shè)計(jì)模式之觀察者模式發(fā)布訂閱模式設(shè)計(jì)模式之工廠模式設(shè)計(jì)模式之單例模式設(shè)計(jì)模式之外觀模式設(shè)計(jì)模式之模塊模式揭示模塊模式
工廠模式
提供一個(gè)通用的接口來創(chuàng)建對象
示例
//Car構(gòu)造函數(shù) function Car(option) { this.doors = option.doors || 4 this.color = option.color || "red" this.state = option.state || "brand new" } //Truck構(gòu)造函數(shù) function Truck(option) { this.color = option.color || "blue" this.wheelSize = option.wheelSize || "large" this.state = option.state || "used" } //Vehicle工廠 function VehicleFactory() {} VehicleFactory.prototype.vehicleClass = Car VehicleFactory.prototype.createVehicle = function(option) { if(option.vehicleType == "car") { this.vehicleClass = Car }else { this.vehicleClass = Truck } return new this.vehicleClass(option) } //創(chuàng)建生成汽車的工廠實(shí)例 var carFactory = new VehicleFactory() var car = carFactory.createVehicle({ vehicleType: "car", color: "yellow", doors: 6 }) console.log(car instanceof Car) console.log(car) //true //Car {doors: 6, color: "yellow", state: "brand new"} var movingTruck = carFactory.createVehicle({ vehicleType: "truck", color: "red", state: "like new", wheelSize: "small" }) console.log(movingTruck instanceof Truck) console.log(movingTruck) //true //Truck {color: "red", state: "like new", wheelSize: "small"}適用場景
當(dāng)對象或組建設(shè)置涉及高復(fù)雜性時(shí)
當(dāng)需要根據(jù)所在當(dāng)不同環(huán)境輕松生成對象當(dāng)不同實(shí)例時(shí)
當(dāng)處理很多共享相同屬性當(dāng)小型對象或組件時(shí)
在編寫只需要滿足一個(gè)API契約(亦稱鴨子類型)的其他對象的實(shí)例對象時(shí)。對解耦是很有用對。
JS設(shè)計(jì)模式系列文章JS設(shè)計(jì)模式之Obeserver(觀察者)模式、Publish/Subscribe(發(fā)布/訂閱)模式
JS設(shè)計(jì)模式之Factory(工廠)模式
JS設(shè)計(jì)模式之Singleton(單例)模式
JS設(shè)計(jì)模式之Facade(外觀)模式
JS設(shè)計(jì)模式之Module(模塊)模式、Revealing Module(揭示模塊)模式
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/109119.html
摘要:工廠模式定義一個(gè)用于創(chuàng)建對象的接口,這個(gè)接口由子類決定實(shí)例化哪一個(gè)類。實(shí)現(xiàn)一個(gè)簡單的實(shí)現(xiàn),使用如果使用對象屬性來實(shí)現(xiàn)以下例子中的工廠方法接受在運(yùn)行時(shí)以字符串形式指定的類型,然后創(chuàng)建并返回所請求類型的對象。 1. 簡介 工廠模式的目的是為了創(chuàng)建對象,它通常在類或者類的靜態(tài)方法中實(shí)現(xiàn),具有以下目標(biāo): 當(dāng)創(chuàng)建相似對象時(shí)執(zhí)行重復(fù)操作 當(dāng)編譯時(shí)不知道具體類型的情況下,為工廠客戶提供一個(gè)創(chuàng)建對象...
摘要:工廠模式是最常用的實(shí)例化對象模式,是用工廠方法代替操作的一種模式原文鏈接簡單工廠模式優(yōu)點(diǎn)能解決多個(gè)相似的問題缺點(diǎn)不能識別對象的類型工廠模式是為了解決多個(gè)類似對象聲明問題,也就是重復(fù)實(shí)例化對象的問題復(fù)雜工廠模式將其成員對象的實(shí)例化推遲到子類中 工廠模式是最常用的實(shí)例化對象模式,是用工廠方法代替new操作的一種模式 原文鏈接 簡單工廠模式 優(yōu)點(diǎn):能解決多個(gè)相似的問題 缺點(diǎn):不能識別對象的...
摘要:前言設(shè)計(jì)模式填坑系列,緊接前文距離上次寫筆記又過去了一個(gè)多月,我也不知道怎么加班加著加著就一個(gè)月了正文定義工廠模式是指提供一個(gè)創(chuàng)建對象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入類型創(chuàng)建對象。 前言 設(shè)計(jì)模式填坑系列,緊接前文(距離上次寫筆記又過去了一個(gè)多月,我也不知道怎么加班加著加著就一個(gè)月了-_-!) 正文 定義 工廠模式是指提供一個(gè)創(chuàng)建對象的接口而不保留具體的創(chuàng)建邏輯,可以根據(jù)輸入...
摘要:期設(shè)計(jì)模式如何理解工廠模式定義創(chuàng)建對象的接口,讓子類決定實(shí)例化哪個(gè)類。適用場景需要根據(jù)不同參數(shù)產(chǎn)生不同實(shí)例,這些實(shí)例都有相同的行為這時(shí)候我們可以使用工廠模式,簡化實(shí)現(xiàn)的過程,同時(shí)也可以減少每種對象所需的代碼量。 20190408期 設(shè)計(jì)模式-如何理解工廠模式? 定義: 創(chuàng)建對象的接口,讓子類決定實(shí)例化哪個(gè)類。工廠方法將類的實(shí)例化延遲到子類,而子類可以重寫接口方法以便創(chuàng)建的時(shí)候指定自己的...
摘要:工廠模式定義一個(gè)用于創(chuàng)建對象的接口,這個(gè)接口由子類決定實(shí)例化哪一個(gè)類。如果不好理解,我們舉個(gè)實(shí)際一點(diǎn)的例子。假設(shè)我們要在一個(gè)頁面上插入一些元素,但這些元素不確定,可能是圖片,可能是鏈接,可能是文本。 工廠模式定義:一個(gè)用于創(chuàng)建對象的接口,這個(gè)接口由子類決定實(shí)例化哪一個(gè)類。該模式使一個(gè)類的實(shí)例化延遲到了子類。而子類可以重寫接口方法以便創(chuàng)建的時(shí)候指定自己的對象類型。 看不懂?沒關(guān)系,先看看...
閱讀 881·2021-11-23 09:51
閱讀 1088·2021-11-15 17:57
閱讀 1667·2021-09-22 15:24
閱讀 812·2021-09-07 09:59
閱讀 2221·2019-08-29 15:10
閱讀 1848·2019-08-29 12:47
閱讀 751·2019-08-29 12:30
閱讀 3368·2019-08-26 13:51