建造者模式:将一个复杂对象的构建层与其表示层分离,同样的构建过程,可采用不同的表示
function Person(param){
this.name = param && param.name || '保密';
this.age = param && param.age || '保密';
}
Person.prototype = {
getName : function(){
return this.name
}
}
function Skills(skill){
this.skill = skill || '' ;
}
Skills.prototype = {
getSkill : function(){
return this.skill
}
}
function National(national){
this.national = national || ''
}
National.prototype = {
getNational : function(){
return this.national;
}
}
var CreatePerson= function(param){
var man = new Person(param);
man.skills = new Skills(param.skill)
man.national = new National(param.national) ;
return man;
}
var newPerson = new CreatePerson({name:'jack',age:'20',skill:'web',national:'china'})
console.log(newPerson .skills.skill) //web
console.log(newPerson .national .national ) //china
建造者将一个完整的部分拆分成不同的类,然后通过拼接的方式组合成一个完整的部分;
相应的也更加关注于不同模块本身的一些细节处理,而并非工厂那样,关心最终的产物;
网友评论