亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JavaScript設(shè)計(jì)模式- 簡單工廠模式

Loong_T / 1607人閱讀

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

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

//籃球基類
var Baseketball = function () {
    this.intro = "籃球盛行于美國"
}
Baseketball.prototype ={
    getMember:function () {
        console.log("每個(gè)隊(duì)伍需要5名隊(duì)員");
    },
    getBallSize:function () {
        console.log("籃球很大");
    }
}
//足球基類
var Football = function () {
    this.intro = "足球在世界范圍內(nèi)很流行";
}
Football.prototype = {
    getMember:function () {
        console.log("每個(gè)隊(duì)伍需要11名隊(duì)員");
    },
    getBallSize:function () {
        console.log("足球很大")
    }
}
//網(wǎng)球基類
var Tennis = function () {
    this.intro = "每年有很多網(wǎng)球系列賽";
}
Tennis.prototype = {
    getMember:function () {
        console.log("每個(gè)隊(duì)伍需要1名隊(duì)員");
    },
    getBallSize:function () {
        console.log("網(wǎng)球很小");
    }
}
//運(yùn)動(dòng)工廠
var SportFactory = function (name) {
    switch (name) {
        case "NBA":return new Baseketball();
        case "wordCup":return new Football();
        case "FrenchOpen":return new Tennis();
    }
}

//為世界杯創(chuàng)造一個(gè)足球,只需要記住運(yùn)動(dòng)工廠SportsFactory,調(diào)用并且創(chuàng)建
var football = SportFactory("wordCup");
console.log(football);
console.log(football.intro);
football.getMember();

場景二:
登錄模塊和注冊模塊的需求中有許多提示框,可以利用簡單工廠模式,將提示框互相借鑒

var PopFactory = function (name) {
    switch (name) {
        case "alert":return new LoginAlert();
        case "confirm":return new LoginConfirm();
        case "promt":return new LoginPrompt();
    }
}

但是LoginAlert、LoginConfirm、LoginPrompt有很多是相同的,這時(shí)可以抽取相同的出來,如下:

function createPop(type,text) {
    //創(chuàng)建一個(gè)對象,并對對象拓展屬性和方法
    var o =new Object();
    o.content = text;
    o.show = function () {
        //顯示方法
    }
    if(type == "alert"){
        //警示框差異部分
    }
    if(type == "prompt"){
        //提示框差異部分
    }
    if(type == "confirm"){
        //確認(rèn)框差異部分
    }
    //將對象返回
    return o;
}
//創(chuàng)建警示框
var userNameAlert = createPop("alert","用戶名只能是26個(gè)字母和數(shù)字");

這兩種方式創(chuàng)建簡單工廠模式有區(qū)別,第一種是通過類實(shí)例化對象創(chuàng)建的,第二種是創(chuàng)建一個(gè)新對象然后包裝增強(qiáng)其屬性和功能來實(shí)現(xiàn)的。

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/97973.html

相關(guān)文章

  • javascript實(shí)現(xiàn)簡單工廠模式

    摘要:從設(shè)計(jì)模式的分類來看簡單工廠模式是創(chuàng)建型模式。使用簡單工廠模式將會(huì)增加系統(tǒng)中類的個(gè)數(shù),在一定程序上增加了系統(tǒng)的復(fù)雜度和理解難度。簡單工廠模式由于使用了靜態(tài)工廠方法,造成工廠角色無法形成基于繼承的等級結(jié)構(gòu)。 簡單工廠模式提供了一個(gè)接口可以根據(jù)傳遞的參數(shù)的不同創(chuàng)建不同的對象,從而將對象自身的邏輯與對象的創(chuàng)建分離開。 從設(shè)計(jì)模式的分類來看簡單工廠模式是創(chuàng)建型模式。事實(shí)上與簡單工廠模式類似的還...

    Code4App 評論0 收藏0
  • Javascript設(shè)計(jì)模式-工廠模式

    摘要:設(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)造工廠模式是一...

    feng409 評論0 收藏0
  • JavaScript設(shè)計(jì)模式系列一:工廠模式

    摘要:設(shè)計(jì)模式共有種,我今天先來了解一下工廠模式,其他的模式將會(huì)在后續(xù)的博客中陸續(xù)為大家講解。工廠模式主要分為簡單工廠模式和抽象工廠模式。抽象工廠模式抽象工廠模式與簡單工廠函數(shù)不同的是,抽象工廠函數(shù)會(huì)先設(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ò)展、可解耦、更容...

    OldPanda 評論0 收藏0
  • JavaScript工廠模式

    摘要:基于工廠角色和產(chǎn)品角色的多態(tài)性設(shè)計(jì)是工廠方法模式的關(guān)鍵。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因?yàn)樗械木唧w工廠類都具有同一抽象父類。工廠方法模式總結(jié)工廠方法模式是簡單工廠模式的進(jìn)一步抽象和推廣。 JavaScript工廠模式 首先需要說一下工廠模式。工廠模式根據(jù)抽象程度的不同分為三種 簡單工廠模式 工廠方法模式 抽象工廠模式 1.簡單工廠模式 簡單工廠模式:又稱為靜態(tài)工廠方法...

    oujie 評論0 收藏0
  • JavaScript設(shè)計(jì)模式-工廠方法模式

    摘要:工廠方法模式,通過對產(chǎn)品類的抽象使其創(chuàng)建業(yè)務(wù),主要負(fù)責(zé)創(chuàng)建多類產(chǎn)品的實(shí)例。安全模式類安全模式類可以屏蔽使用類的錯(cuò)誤造成的錯(cuò)誤??梢詫⒐S方法看作是一個(gè)實(shí)例化對象的工廠類,安全起見,采用安全模式類,將創(chuàng)建對象的基類放在工廠方法類的原型中即可。 工廠方法模式,通過對產(chǎn)品類的抽象使其創(chuàng)建業(yè)務(wù),主要負(fù)責(zé)創(chuàng)建多類產(chǎn)品的實(shí)例。前面記錄了簡單工廠模式,但是需求時(shí)不斷變化的,當(dāng)需求簡單時(shí),直接創(chuàng)建對象...

    shixinzhang 評論0 收藏0
  • JavaScript設(shè)計(jì)模式一:工廠模式和構(gòu)造器模式

    摘要:集中實(shí)例化的函數(shù)第一個(gè)實(shí)例第二個(gè)實(shí)例工廠模式的分類工廠模式分為簡單工廠抽象工廠和智能工廠,工廠模式不顯示地要求使用一個(gè)構(gòu)造函數(shù)。工廠模式之弊大多數(shù)類最好使用關(guān)鍵字和構(gòu)造函數(shù),可以讓代碼更加簡單易讀。帶原型的構(gòu)造器中有一個(gè)名為的屬性。 什么是模式 前陣子準(zhǔn)備期末考試,挺累也挺忙的,實(shí)在閑不得空來更新文章,今天和大家說說javascript中的設(shè)計(jì)模式。 首先呢,我們需要知道的是:模式是一...

    MkkHou 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<