建造者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。
主要解决:在软件系统中,有时候面临着"一个复杂对象"的创建工作,由于需求的变化,这个复杂对象的某些部分经常面临着剧烈的变化,一些基本部件不会变。所以需要将变与不变分离。
与抽象工厂的区别:在建造者模式里,有个指导者(Director),由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造者模式可以强制实行一种分步骤进行的建造过程。
//产品——产品类
function Product(){
this.design = "";
this.db = "";
this.front = "";
this.back = "";
}
//产品经理——指导类
function ProductManager(){
this.startWork = function(engineer){
engineer.productDesign();
engineer.frontEnd();
engineer.backEnd();
engineer.dbManageer();
}
}
//工程师——建造者类
function Engineer(){
this.productDesign = function(){
console.log("产品设计好了");
};
this.dbManageer = function(){
console.log("数据库设计好了");
};
this.backEnd = function(){
console.log("后台写好了");
};
this.frontEnd = function(){
console.log("前台写好了");
};
this.done = function(){
var product = new Product();
product.design = "done";
product.db = "done";
product.back = "done";
product.front = "done";
return product;
}
}
(1)建造者模式中有一个指导者,他不负责建造任何东西,但是他会把别人建好的东西组合起来
还没理解透,没写完