最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

理解JavaScript設計模式中的建造者模式

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

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

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

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

一個 Builder 類會一步一步構造最終的對象。該 Builder 類是獨立于其他對象的。

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

它的優(yōu)點是:

  • 1、建造者獨立,易擴展。
  • 2、便于控制細節(jié)風險

缺點: 

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

當我們需要生成的對象具有復雜的內(nèi)部結構或需要生成的對象內(nèi)部屬性本身相互依賴時,會借助它來解決問題;

實戰(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)一指揮來組裝構建:

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

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

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

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

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

相關文章

最新評論

阿拉善右旗| 正定县| 通城县| 英吉沙县| 延津县| 罗平县| 平凉市| 凤城市| 灯塔市| 米林县| 外汇| 阿拉善左旗| 监利县| 屏南县| 邢台市| 兰坪| 三河市| 涿州市| 贺州市| 盐山县| 荆州市| 潞西市| 安仁县| 涞源县| 建瓯市| 读书| 长岛县| 彭水| 普陀区| 安丘市| 汉源县| 张家口市| 玉林市| 吴忠市| 祥云县| 乌鲁木齐县| 郴州市| 红原县| 长顺县| 镇安县| 特克斯县|