创造型——简单工厂模式

定义:由一个工厂对象决定创建某一正产品对象类的实例

理解:一个工厂根据传入的参数,动态的决定应该创建哪一个产品的实例。

eg:(一个运动工厂)

var SportFactory = function(name){
    switch(name){
    case "NBA":
        return new Basketball();
    case "wordCup":
        return new Football();
    case "FrenchOpen":
        return new Tennis();
    }
}

eg:(基类)

//篮球基类
var Basketball = function(){
    this.intro = '篮球盛行于美国';
}
Basketball.prototype = {
    getNumber:function(){
        console.log("每个队伍需要5名队员");
    }
}

//足球基类
var Football = function(){
    this.intro = '足球在全世界都很流行';
}
Football.prototype = {
    getNumber:function(){
        console.log("每个队伍需要11名队员");
    }
}

//网球基类
var Tennis = function(){
    this.intro = '每年都有很多网球系列赛';
}
Tennis.prototype = {
    getNumber:function(){
        console.log("每个队伍需要1名队员");
    }
}

缺点:简单工厂类集中了所以对象的实例化,当系统中的产品类不断的增加,需要修改工厂类,并且增加判断条件,不利于系统的维护和扩展,只适用于创建少量类的情况下

原文地址:https://www.cnblogs.com/thonrt/p/9230327.html