JavaScript设计模式

242 阅读1分钟

创建型设计模式

1. 简单工厂模式

let Basketball = function() {
    this.info = '篮球'
}
Basketball.prototype = {
    getInfo: function() {
        return this.info
    }
}

let Football  = function() {
    this.info = '足球'
}
Football.prototype = {
    getInfo: function() {
        return this.info
    }
}

let SportsFactory = function(name) {
    switch(name) {
        case 'baskteball':
            return new Basketball();
            break;
        case 'football':
            return new Football();
            break;
    }
}

收获:

团队开发不同于个人,对全局变量的限制很大,要尽量少得创建全局变量。如果有同一类对象在不同需求中重复使用,那么大部分是不需要重复创建的,要学会代码复用。用简单工厂来创建对象,可以减少全局变量创建提高代码复用率,它的使用场合限制在创建单一对象。

2. 方法工厂模式

// 安全模式创建的工厂类
let Factorial = function(type, content) {
    if (this instanceof Factorial) {
        return new this[type](content);
    } else {
        return new Factorial(content);
    }
}

Factorial.prototype = {
    JavaScript: function(content) {
        return content;
    },
    php: function(content) {
        return content;
    }
}

收获:

对于创建很多类的对象,简单工厂模式就不适合了,通过工厂模式可以轻松创建多个类的实例对象,而且避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类,只需调用工厂方法即可。

3. 抽象工厂模式