欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

怎樣用Javascript實現(xiàn)建造者模式

 更新時間:2021年04月26日 09:20:03   作者:有夢想的咸魚前端  
這篇文章主要介紹了怎樣用Javascript實現(xiàn)建造者模式,想學習設(shè)計模式的同學,可以參考下

概述

建造者模式是相對比較簡單的一種設(shè)計模式,屬于創(chuàng)建型模式的一種;

定義:將一個復雜的對象分解成多個簡單的對象來進行構(gòu)建,將復雜的構(gòu)建層與表現(xiàn)層分離,使相同的構(gòu)建過程可以創(chuàng)建不同的表示模式;

優(yōu)點:

  • 建造者模式的封裝性比較好,創(chuàng)建對象和構(gòu)建過程解耦;
  • 建造者模式很容易擴展,當我們需要擴展的時候,通過一個新的建造者就可以實現(xiàn);

模式作用:

  • 分步創(chuàng)建一個復雜的對象
  • 解耦封裝過程和具體創(chuàng)建組件
  • 無需關(guān)心組件如何組裝

注意事項:

  • 一定要一個穩(wěn)定的算法支持  
  • 加工工藝是暴露的,也就是說土豪可以隨時去看房子建的怎么樣了

白話解釋:

某土豪想建一個房子,某土豪只需要找包工頭,包工頭再去找施工團隊來建造房子,而不需要土豪自己去一個個的找工人搭建施工團隊開始施工;包工頭知道土豪的需求,也知道哪里能找到工人搭建施工團隊,工人可以直接干活,中間節(jié)省了土豪直接和工人溝通的成本;土豪不需要知道房子該怎么建,土豪只需要最后能驗收到房就行;

代碼實現(xiàn)

在寫代碼之前我們先分析一下:

1、產(chǎn)出的東西是房子

2、包工頭調(diào)用工人進行開工而且他要很清楚工人們具體的某一個大項

3、工人是蓋房子的工人可以建臥室建客廳建廚房

4、包工頭只是一個接口,他只對外說蓋房子,他不用做事情;   

function Fangzi(){
    this.woshi = "";
    this.keting = "";
    this.chufang = "";
}

function Baogongtou(){
    this.jianfangzi = function(gongren){
        gongren.jian_woshi();
        gongren.jian_keting();
        gongren.jian_chufang();
    }
}

function Gongren(){
    this.jian_woshi = function(){
        console.log("臥室建好了!");
    }

    this.jian_keting = function(){
        console.log("客廳建好了!");
    }

    this.jian_chufang = function(){
        console.log("廚房建好了!");
    }

    this.wangong = function(){
        var fangzi = new Fangzi();
        fangzi.woshi = "ok";
        fangzi.keting = "ok";
        fangzi.chufang = "ok";
        return fangzi;
    }
}
let gongren = new Gongren();
let baogongtou = new Baogongtou();
//臥室建好了!
//客廳建好了!
//廚房建好了!
baogongtou.jianfangzi(gongren);
var my_fangzi = gongren.wangong();
/*
Fangzi={
       chufang: "ok"
       keting: "ok"
       woshi: "ok"
       }
*/
console.log(my_fangzi);            

上述代碼中我們可以看到,Gongren()里面是具體的施工過程,也就是具體做的事情,F(xiàn)angzi()里面一開始都是空的,沒有客廳、廚房、臥室;Baogongtou()里面只是對外宣傳可以建房子,然后傳入工人方法調(diào)用工人進行施工;工人方法執(zhí)行完了也就是施工完了,然后就是交房;一個新的方法里面實例化Fangzi()的方法,在新方法里面重新賦值即可;

以上就是怎樣用Javascript實現(xiàn)建造者模式的詳細內(nèi)容,更多關(guān)于Javascript建造者模式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • js 概率計算(簡單版)

    js 概率計算(簡單版)

    這篇文章主要介紹了js 概率計算(簡單版),需要的朋友可以參考下
    2017-09-09
  • js實現(xiàn)input的賦值小結(jié)

    js實現(xiàn)input的賦值小結(jié)

    這篇文章主要介紹了js實現(xiàn)input的賦值問題小結(jié),在實際的開發(fā)中,為了頁面的美觀,可能用到一些框架,比如EasyUI框架,文中介紹了easyui的input框賦值代碼,感興趣的朋友一起看看吧
    2023-12-12
  • 詳解微信小程序緩存--緩存時效性

    詳解微信小程序緩存--緩存時效性

    這篇文章主要介紹了微信小程序緩存時效性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • 微信小程序自定義可滑動日歷界面

    微信小程序自定義可滑動日歷界面

    這篇文章主要為大家詳細介紹了微信小程序自定義可滑動日歷界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS集合set類的實現(xiàn)與使用方法示例

    JS集合set類的實現(xiàn)與使用方法示例

    這篇文章主要介紹了JS集合set類的實現(xiàn)與使用方法,結(jié)合具體實例形式分析了javascript集合的創(chuàng)建、元素添加、刪除以及并集、交集、補集等運算相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • 解決小程序無法觸發(fā)SESSION問題

    解決小程序無法觸發(fā)SESSION問題

    這篇文章主要介紹了解決小程序無法觸發(fā)SESSION問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • JS 實現(xiàn)請求調(diào)度器

    JS 實現(xiàn)請求調(diào)度器

    這篇文章主要介紹了JS 實現(xiàn)請求調(diào)度器的方法,幫助大家更好的理解和學習使用js,感興趣的朋友可以了解下
    2021-03-03
  • 移動端H5頁面返回并刷新頁面(BFcache)的方法

    移動端H5頁面返回并刷新頁面(BFcache)的方法

    這篇文章主要給大家介紹了關(guān)于移動端H5頁面返回并刷新頁面(BFcache)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • JavaScript ES6中類與模塊化管理超詳細講解

    JavaScript ES6中類與模塊化管理超詳細講解

    JavaScript中的模塊化是指將每個js文件會被認為單獨一個的模塊。模塊之間是互相不可見的。如果一個模塊需要使用另一個模塊,那么需要通過指定語法來引入要使用的模塊,而且只能使用引入模塊所暴露的內(nèi)容
    2023-01-01
  • javascript返回頂部效果(自寫代碼)

    javascript返回頂部效果(自寫代碼)

    今天抽空用原生javascript寫了個返回頂部效果,由于本人水平有限,如有問題請指出,在下很樂意接受,有需要的朋友可以參考下
    2013-01-01

最新評論