JS設計模式之建造者模式


建造者模式(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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM