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

理解JavaScript設(shè)計(jì)模式中的建造者模式

 更新時(shí)間:2022年04月26日 14:30:57   作者:掘金安東尼  
這篇文章主要介紹了理解JavaScript設(shè)計(jì)模式中的建造者模式,文章基于JavaScript的相關(guān)資料展開箱子內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

我們在前面已經(jīng)提過設(shè)計(jì)模式創(chuàng)建型模式的 3 種工廠模式 單例模式;本篇帶來同屬創(chuàng)建型模式的“建造者模式”

分分鐘理解建造者模式_建造者

建造者模式(Builder Pattern)使用多個(gè)簡單的對象一步一步構(gòu)建成一個(gè)復(fù)雜的對象。它提供了一種創(chuàng)建對象的最佳方式。

一個(gè) Builder 類會一步一步構(gòu)造最終的對象。該 Builder 類是獨(dú)立于其他對象的。

建造者模式:主要解決在軟件系統(tǒng)中,有時(shí)候面臨著"一個(gè)復(fù)雜對象"的創(chuàng)建工作,其通常由各個(gè)部分的子對象用一定的算法構(gòu)成;由于需求的變化,這個(gè)復(fù)雜對象的各個(gè)部分經(jīng)常面臨著劇烈的變化,但是將它們組合在一起的算法卻相對穩(wěn)定。

它的優(yōu)點(diǎn)是:

  • 1、建造者獨(dú)立,易擴(kuò)展。
  • 2、便于控制細(xì)節(jié)風(fēng)險(xiǎn)

缺點(diǎn): 

  • 1、產(chǎn)品必須有共同點(diǎn),范圍有限制。
  • 2、如內(nèi)部變化復(fù)雜,會有很多的建造類。

當(dāng)我們需要生成的對象具有復(fù)雜的內(nèi)部結(jié)構(gòu)或需要生成的對象內(nèi)部屬性本身相互依賴時(shí),會借助它來解決問題;

實(shí)戰(zhàn)舉例:

比如說,我們要建造一輛車:

function car () {
this.name = '',
this.number = '',
this.wheel = '',
this.engine = ''
}

車由名字、車牌號、輪子、引擎組成;

然后,我們在建造類中分門別類建造他們:

function carBuilder () {
this.nameBuilder = function () {
this.name = '寶馬'
},
this.numberBuilder = function () {
this.number = '88888888'
},
this.wheelBuilder = function () {
this.wheel = '米其林輪胎'
},
this.engineBuilder = function () {
this.engine = 'V8引擎'
},
this.getCar = function () {
var Car = new car()
Car.name = this.name;
Car.number= this.number;
Car.wheel = this.wheel;
Car.engine = this.engine;
return Car;
}
}

然后,再統(tǒng)一指揮來組裝構(gòu)建:

function director () {
this.action = function (builder) {
builder.nameBuilder();
builder.numberBuilder();
builder.wheelBuilder();
builder.engineBuilder();
}
}

var builder = new carBuilder(); // 構(gòu)建類
var director = new director(); // 指揮構(gòu)建
director.action(builder); // 應(yīng)用構(gòu)建
var Car = builder.getCar(); // 創(chuàng)建
console.log(Car);

建造者模式主要用于“分布構(gòu)建一個(gè)復(fù)雜的對象”,它很容易進(jìn)行擴(kuò)展。如果有新的需求,通過實(shí)現(xiàn)一個(gè)新的建造者類就可以完成,并且建造者模式解耦了對象本身與構(gòu)建過程,使得我們不用關(guān)心具體的建造過程。

要注意:與工廠模式的區(qū)別是:建造者模式更加關(guān)注與零件裝配的順序。

到此這篇關(guān)于理解JavaScript設(shè)計(jì)模式中的建造者模式的文章就介紹到這了,更多相關(guān)JS建造者模式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論