建造者模式(builder pattern)屬於創建型模式的一種,提供一種創建復雜對象的方式。它將一個復雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。
建造者模式是一步一步的創建一個復雜的對象,它允許用戶只通過指定復雜的對象的類型和內容就可以構建它們,用戶不需要指定內部的具體構造細節。
本文首發於 建造者(builder)模式
使用場景
日常生活中,比如組裝電腦,生產汽車,都是有多個步驟來一步一步構建的,這時候就可以使用建造者模式來解決這個問題。下面以組裝電腦為例子,比如組裝游戲電腦,組裝辦公電腦。步驟都是一樣的,最終都會出一個成品出來。
function gameComputerBuilder() {
this.buildMainboard = function() {
console.log('游戲主板');
};
this.buildCPU = function() {
console.log('游戲CPU');
};
this.buildHardDisk = function() {
console.log('游戲硬盤');
};
this.getComputer = function() {
return '游戲電腦';
};
}
function officeComputerBuilder() {
this.buildMainboard = function() {
console.log('辦公主板');
};
this.buildCPU = function() {
console.log('辦公CPU');
};
this.buildHardDisk = function() {
console.log('辦公硬盤');
};
this.getComputer = function() {
return '辦公電腦';
};
}
function Operator() {
this.startBuild = function(builder) {
builder.buildMainboard();
builder.buildCPU();
builder.buildHardDisk();
return builder.getComputer();
};
}
const op = new Operator();
const gameComputer = new gameComputerBuilder();
const officeComputer = new officeComputerBuilder();
const gc = op.startBuild(gameComputer);
console.log(gc)
const oc = op.startBuild(officeComputer);{}
console.log(oc)
