JS 创建型设计模式--建造者模式

建造者模式:将一个复杂对象的构建层与其表示层分离,同样的构建过程,可采用不同的表示

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

建造者将一个完整的部分拆分成不同的类,然后通过拼接的方式组合成一个完整的部分;
相应的也更加关注于不同模块本身的一些细节处理,而并非工厂那样,关心最终的产物;

你可能感兴趣的:(JS 创建型设计模式--建造者模式)