建造者模式

  • 定义:将一个复杂对象的构建层和表示层分离。

  • 它与工厂模式的区别

  1. 建造者模式更注重于创建对象的过程,而工厂模式更注重于结果
  2. 建造者模式使用new来创建一个人,工厂模式是调用工厂函数返回一个实例。因此建造者模式可以使用instanceof运算符判断实例所属类型,而工厂模式不行。
  • 以下是使用建造者模式创建一个人,人具有工作和姓名两个属性
let Human = function () { };

let Name = function (name) {
  this.wholeName = name;
}

let Work = function (work) {
  this.currentWork = work;
}

function Person(name, work) {
  let _person = new Human();
  _person.name = new Name(name);
  _person.work = new Work(work);
  return _person;
}

let person = new Person('wqt', '工程师');