zoukankan      html  css  js  c++  java
  • 单例模式

    一、单例模式

    // 单例模式
    class SingleMode {
      static getInstance(name, age) {
        if (!SingleMode.instance) {
          SingleMode.instance = new SingleMode(name, age);
        }
        return SingleMode.instance;
      }
    
      constructor(name, age) {
        this.name = name;
        this.age = age;
      }
    
      setInfo(name, age) {
        this.name = name;
        this.age = age;
        console.log(this.name, this.age);
      }
    }
    
    const s1 = SingleMode.getInstance('shangyueyue', 18);
    const s2 = SingleMode.getInstance('shangyueyue', 18);
    console.log(s1, s2, s1 === s2);
    // SingleMode { name: 'shangyueyue', age: 18 } SingleMode { name: 'shangyueyue', age: 18 } true
    s2.setInfo('huyating', 23);
    console.log(s1, s2, s1 === s2);
    // SingleMode { name: 'huyating', age: 23 } SingleMode { name: 'huyating', age: 23 } true
    
    // 单例模式
    class SingleMode2 {
      constructor(name, age) {
        if (SingleMode2.instance) return SingleMode2.instance;
        this.name = name;
        this.age = age;
        SingleMode2.instance = this;
        return this;
      }
    
      setInfo(name, age) {
        this.name = name;
        this.age = age;
        console.log(this.name, this.age);
      }
    }
    const s3 = new SingleMode2('shangyueyue', 18);
    const s4 = new SingleMode2('shangyueyue', 18);
    console.log(s3, s4, s3 === s4);
    // SingleMode { name: 'shangyueyue', age: 18 } SingleMode { name: 'shangyueyue', age: 18 } true
    s3.setInfo('huyating', 23);
    console.log(s3, s4, s3 === s4);
    // SingleMode { name: 'huyating', age: 23 } SingleMode { name: 'huyating', age: 23 } true
  • 相关阅读:
    程序怎么才能把自己的删除掉?
    Winsock编程入门1.初始化Winsock
    关于83版射雕英雄传
    一个感人的爱情故事(中英对照)
    NT系统的命令
    Delphi小巧的Windows NT服务程序源码
    更改Windows 登录屏幕保护程序
    画鬼最易
    濮水垂钓
    现代工作观
  • 原文地址:https://www.cnblogs.com/shangyueyue/p/10824285.html
Copyright © 2011-2022 走看看