工厂方法模式

工厂方法模式是一种实现了「工厂」概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是「定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。」

var Humanity = (function() {
  function Man() {
    this.introduce = function() {
      return 'I\'m a man.';
    }
  }

  function Woman() {
    this.introduce = function() {
      return 'I\'m a woman.';
    }
  }

  var humanity = {
    male: Man,
    female: Woman
  };

  return function( gender ) {
    return new humanity[gender]();
  }
})();

var man = new Humanity('male');
var woman = new Humanity('female');

console.log(man.introduce());     // "I'm a man."
console.log(woman.introduce());   // "I'm a woman."

results matching ""

    No results matching ""