Builder模式参考图片:
代码:
var Product = function() {
this.data1 = 1;
this.data2 = 2;
this.operation = function() {
console.log(this);
};
};
var Builder = function() {
this.product = new Product;
};
Builder.prototype.buildPart = function() {};
var ConcreteBuilder1 = function() {
var getResult = function() {
return this.product;
};
this.buildPart = function() {
var product = getResult.call(this);
product.data1 = 11;
return product;
};
};
var builder = new Builder;
ConcreteBuilder1.prototype = builder;
ConcreteBuilder1.prototype.constructor = ConcreteBuilder1;
var ConcreteBuilder2 = function() {
var getResult = function() {
return this.product;
};
this.buildPart = function() {
var product = getResult.call(this);
product.data2 = 22;
return product;
};
};
ConcreteBuilder2.prototype = builder;
ConcreteBuilder2.prototype.constructor = ConcreteBuilder2;
var Director = function() {
var builder = new ConcreteBuilder1;
builder.buildPart().operation();
builder = new ConcreteBuilder2;
builder.buildPart().operation();
};
Director();