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