Builder 模式 javascript

來源:互聯網
上載者:User

原文:http://www.dofactory.com/javascript-builder-pattern.aspx

function Shop() {    this.construct = function(builder) {        builder.step1();        builder.step2();        return builder.get();    }}function CarBuilder() {    this.car = null;    this.step1 = function() {        this.car = new Car();    };    this.step2 = function() {        this.car.addParts();    };    this.get = function() {        return this.car;    };}function TruckBuilder() {    this.truck = null;    this.step1 = function() {        this.truck = new Truck();    };    this.step2 = function() {        this.truck.addParts();    };    this.get = function() {        return this.truck;    };}function Car() {    this.doors = 0;    this.addParts = function() {        this.doors = 4;    };    this.say = function() {        log.add("I am a " + this.doors + "-door car");    };}function Truck() {    this.doors = 0;    this.addParts = function() {        this.doors = 2;    };    this.say = function() {        log.add("I am a " + this.doors + "-door truck");    };}// log helpervar log = (function () {    var log = "";    return {        add: function (msg) { log += msg + "\n"; },        show: function () { alert(log); log = ""; }    }})();function run() {    var shop = new Shop();    var carBuilder = new CarBuilder();    var truckBuilder = new TruckBuilder();    var car = shop.construct(carBuilder);    var truck = shop.construct(truckBuilder);    car.say();    truck.say();    log.show();}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.