成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Javascript設(shè)計(jì)模式(二)工廠模式

anonymoussf / 2206人閱讀

摘要:所謂的工廠模式,顧名思義就是成批量地生產(chǎn)模式。工廠方法將類的實(shí)例化延遲到子類首先是創(chuàng)建構(gòu)造函數(shù),區(qū)別物種的不同屬性。工廠模式適用于以下場景實(shí)例對(duì)象較復(fù)雜。設(shè)計(jì)模式更代表的是一種系統(tǒng)思想,而不是重復(fù)的代碼堆砌。

所謂的工廠模式,顧名思義就是成批量地生產(chǎn)模式。它的核心作用也是和現(xiàn)實(shí)中的工廠一樣利用重復(fù)的代碼最大化地產(chǎn)生效益。在javascript中,它常常用來生產(chǎn)許許多多相同的實(shí)例對(duì)象,在代碼上做到最大的利用。工廠模式定義創(chuàng)建對(duì)象的接口,但是讓子類決定實(shí)例化哪個(gè)類。工廠方法將類的實(shí)例化延遲到子類

首先是創(chuàng)建構(gòu)造函數(shù),區(qū)別物種的不同屬性。

//定義人的構(gòu)造函數(shù)
var man = function(o) {
    this.foots = o.foot || 2;
    this.legs = o.legs || 2;
}

//定義魚的構(gòu)造函數(shù)
var fish = function(o) {
    this.qi = o.qi || 4;
    this.foots = o.foots || 9;
}

//定義外星人的構(gòu)造函數(shù)
var et = function(o) {
    this.legs = o.legs ||10;
    this.eyes = o.eyes || 6;
}

接下來我們?cè)賱?chuàng)建一個(gè)工廠的構(gòu)造函數(shù):

//工廠函數(shù)的構(gòu)造函數(shù)
var F = function() {}

接著在原型上設(shè)置它的默認(rèn)方法:

//f的默認(rèn)輸出實(shí)例函數(shù);
F.prototype.vehicleClass = man;

此時(shí),該工廠函數(shù)默認(rèn)生產(chǎn)的是man的實(shí)例,在不配置的情況下我們產(chǎn)生的是人類的實(shí)例,然后我們對(duì)vehicleClass這個(gè)函數(shù)進(jìn)行擴(kuò)充,生成一個(gè)新的函數(shù),此函數(shù)可以對(duì)不同的類別進(jìn)行甄別,

//類的甄別函數(shù)
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;
        }
    //返回實(shí)例
    return this.vehicleClass(o);
}

通過swith語句的索引,可以通過vehicleType進(jìn)行不同類的實(shí)例化。那么我們看看這個(gè)類是如何工作的。首先時(shí)實(shí)例工廠類.

var Factory = new F();

然后調(diào)用vehicleCreate方法,通過傳參獲取不同實(shí)例的對(duì)象。

var Man = Factory.vehicleCreate({
    vehicleType : "man",
    legs : 2,
    foots : 2
});

這樣,通過vehicleType的值,我們可以告訴工廠類我們希望輸出的物種,然后通過其他的屬性,我們可以控制該物種實(shí)例的各種基礎(chǔ)屬性。

工廠模式適用于以下場景:

實(shí)例對(duì)象較復(fù)雜。

多對(duì)象的簡單,快速的實(shí)現(xiàn)。

跟享元模類似,適用于擁有共同屬性的對(duì)象。

只需要滿足一個(gè)API契約的其他對(duì)象的實(shí)例對(duì)象。

工廠模式實(shí)現(xiàn)起來較為簡單,不僅僅是工廠模式,幾乎所有模式的代碼看起來都比較簡單。設(shè)計(jì)模式其實(shí)就是把經(jīng)常用到的代碼歸納總結(jié)系統(tǒng)的表達(dá)而已。在之后的應(yīng)用中,我們可以系統(tǒng)地去想到這些模式并且運(yùn)用它們。設(shè)計(jì)模式更代表的是一種系統(tǒng)思想,而不是重復(fù)的代碼堆砌。

引用鏈接

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/99144.html

相關(guān)文章

  • 從ES6重新認(rèn)識(shí)JavaScript設(shè)計(jì)模式(): 工廠模式

    摘要:簡單工廠模式簡單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對(duì)象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創(chuàng)建對(duì)象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對(duì)象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...

    Reducto 評(píng)論0 收藏0
  • 從ES6重新認(rèn)識(shí)JavaScript設(shè)計(jì)模式(): 工廠模式

    摘要:簡單工廠模式簡單工廠模式又叫靜態(tài)工廠模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類的實(shí)例。工廠方法模式工廠方法模式的本意是將實(shí)際創(chuàng)建對(duì)象的工作推遲到子類中,這樣核心類就變成了抽象類。抽象工廠模式一般用在 1 什么是工廠模式? 工廠模式是用來創(chuàng)建對(duì)象的一種最常用的設(shè)計(jì)模式。我們不暴露創(chuàng)建對(duì)象的具體邏輯,而是將將邏輯封裝在一個(gè)函數(shù)中,那么這個(gè)函數(shù)就可以被視為一個(gè)工廠。工廠模式根據(jù)抽象程度的不...

    szysky 評(píng)論0 收藏0
  • JavaScript設(shè)計(jì)模式- 簡單工廠模式

    摘要:簡單工廠模式又叫靜態(tài)工廠方法模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類的實(shí)例。主要用來創(chuàng)建同一類對(duì)象。場景一比如體育商店賣體育器材,里面有很多體育用品,及相關(guān)介紹,當(dāng)我們想買一個(gè)籃球及相關(guān)介紹時(shí),只需要溫售貨員,他會(huì)幫你找到所有的東西。 簡單工廠模式又叫靜態(tài)工廠方法模式,由一個(gè)工廠對(duì)象決定創(chuàng)建某一種產(chǎn)品對(duì)象類的實(shí)例。主要用來創(chuàng)建同一類對(duì)象。場景一:比如體育商店賣體育器材,里面有很多體...

    Loong_T 評(píng)論0 收藏0
  • 細(xì)談JavaScript中的一些設(shè)計(jì)模式

    摘要:注意事項(xiàng)聲明函數(shù)時(shí)候處理業(yè)務(wù)邏輯區(qū)分和單例的區(qū)別,配合單例實(shí)現(xiàn)初始化構(gòu)造函數(shù)大寫字母開頭推薦注意的成本。簡單工廠模式使用一個(gè)類通常為單體來生成實(shí)例。 @(書籍閱讀)[JavaScript, 設(shè)計(jì)模式] 常見設(shè)計(jì)模式 一直對(duì)設(shè)計(jì)模式不太懂,花了一下午加一晚上的時(shí)間,好好的看了看各種設(shè)計(jì)模式,并總結(jié)了一下。 設(shè)計(jì)模式簡介 設(shè)計(jì)模式概念解讀 設(shè)計(jì)模式的發(fā)展與在JavaScript中的應(yīng)用 ...

    30e8336b8229 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<