Node.js之单利模式

作者: 老马的春天 | 来源:发表于2017-10-12 11:39 被阅读66次

    在iOS中我们经常用到单利模式,这样就能够实现在多处共享同一数据,那么在Node.js中也存在这种模式。

    我们知道,Node.js中模块的概念很重要,在写模块的接口的时候,只需要暴露出一个实例对象就能实现单利模式。

    这依赖于模块加载的缓存机制,在这篇文章中我给出了说明。Node.js之循环依赖

    我们先看看一个简单的logger模块的代码:

    class Logger {
        constructor(name) {
            this.name = name;
            this.count = 0;
        }
    
        log(message) {
            this.count++;
            console.log(`${this.name} ${message} count: ${this.count}`);
        }
    
        info(message) {
            this.log(`info: ${message}`);
        }
    
        verbose(message) {
            this.log(`verbose: ${message}`);
        }
    }
    
    module.exports = new Logger("DEFAULT");
    

    代码很简单,用的是ES6的新语法,这些其实都是prototype的语法糖。那么再看看验证是否是单利的代码:

    const logger = require("./logger.js");
    logger.info("This is a message");
    logger.verbose("This is a verbose message");
    

    打印结果:

    DEFAULT info: This is a message count: 1
    DEFAULT verbose: This is a verbose message count: 2
    

    通过count属性,我们发现确实符合单利模式特性。

    以上这些内容来自于这本书nodejs-design-patternshttps://github.com/agelessman/MyBooks

    目前国内的资料还是比较少的,像这么好的书,确实值得推荐。

    相关文章

      网友评论

        本文标题:Node.js之单利模式

        本文链接:https://www.haomeiwen.com/subject/tqvnyxtx.html