设计模式之单例模式

122 阅读1分钟
  • 设计模式总结
  • 1、创建型:单例,原型,构造器,工厂,抽象工厂
  • 2、结构型:桥接,外观,组合,装饰器,适配器,代理,享元
  • 3、行为型:迭代器,解诗琪,观察者,中介者,访问者,状态,备忘录,策略,模板方法,职责链
//类实现单例
class SingletonCar {
    constructor () {
        this.name = null;
    }
    static getInstance () {
        //SingletonCar.base是永假的
        if (!SingletonCar.base) {
            SingletonCar.base = new SingletonCar();
        }
        return SingletonCar.base;
    }
}

//闭包实现单例
var SingletonCarClass = (function () {
    var instance;
    var SingletonCarTemp = function () {
        this.name = null;
    };
    
    return function () {
        if (!instance) {
            instance = new SingletonCarTemp();
        }
        return instance;
    }
})();

let car1 = SingletonCar.getInstance();
let car2 = SingletonCar.getInstance();
let car3 = new SingletonCarClass();
let car4 = new SingletonCarClass();

console.log(car1 === car2)      // true
console.log(car3 === car4)      // true