zoukankan      html  css  js  c++  java
  • Node.js之单利模式

    在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

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

  • 相关阅读:
    Http服务器实现文件上传与下载(二)
    Http服务器实现文件上传与下载(三)
    NHibernate VS IbatisNet
    5. Element-UI的基本使用
    4. Vue脚手架
    3. Vue单文件组件
    webpack中的加载器
    webpack
    02.模块化相关规范
    01.前端工程化的学习目标
  • 原文地址:https://www.cnblogs.com/machao/p/7655390.html
Copyright © 2011-2022 走看看