javascript设计模式(二)单体模式

这个模式之前就有写过,只是当时不知道这种模式的正规叫法.
当时把该项目的一些需要ajax请求的方法提取到一个database.js里。

// datanbase.js
export default class Database {
  //一些提取出来的方法
}

因为是class类,不能直接使用,得先实例化,但是如果每次都实例,对性能会有很大的影响。所以当时做了一个判断。

import database from './database';

let databaseFactory = (function () {

    let instance;

    function init() {
        return new database();
    }

    if (!instance) {//如果没有instance,就new一个
        instance = init();
    }

    return instance;//如果有了就直接return instance
})();

module.exports = databaseFactory;

后面使用的时候,都这样使用即可。

let dbManager = require('../utils/DatabaseFactory');
dbManager.xxxxx

你可能感兴趣的:(javascript设计模式(二)单体模式)