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

    • 系统中被唯一使用
    • 一个类只有一个实例

    参考:https://www.cnblogs.com/zjoch/p/4455530.html

    Java来演示单例UML类图

     Java示例

     1 public class SingleObject {
     2   // 注意,私有化构造函数,外部不能 new,只能内部能 new !!!
     3   private SingObject() {
     4     
     5   }
     6   // 唯一被 new 出来的对象
     7   private SingleObject instance = null
     8     // 获取对象的唯一接口
     9     public SingleObject getInctance() {
    10     if (instance == null) {
    11       // 只能 new 一次
    12       instance = new SingleObject()
    13     }
    14     return instance
    15   }
    16     
    17     // 对象方法
    18     public void login(username, password) {
    19     System.out.println("login...")
    20   }
    21 }
    22 
    23 public class SingletonPatternDemo {
    24   public static void main(String[] args) {
    25     // 不合法的构造函数
    26     // 编译时错误:构造函数 SingleObject() 是不可见的 !!!
    27     // SingleObject object == new SingleObject()
    28     
    29     // 获取唯一可用的对象
    30     SingleObject object = SingleObject.getInstance()
    31     object.login()
    32   }
    33 }

    ========= js ========= 

     1 // 单列模式
     2   class SingleObject {
     3     login() {
     4       console.log('login...')
     5     }
     6   }
     7   SingleObject.getInstance = (function () {
     8     let instance
     9     return function () {
    10       if (!instance) {
    11         instance = new SingleObject()
    12       }
    13       return instance
    14     }
    15   })()
    16 
    17 let obj1 = SingleObject.getInstance() 18 obj1.login() 19 let obj2 = SingleObject.getInstance() 20 obj2.login() 21 22 console.log('obj1 === obj2', obj1 === obj2) // true
  • 相关阅读:
    day24 Pyhton学习 反射
    正则表达式练习
    day23 Pyhton学习 昨日回顾.re模块.序列化模块
    day22 函数整理
    day22 Pyhton学习 re模块和正则表达式
    day21 Pyhton学习 模块
    函数整理
    一个关于浮点数运算需要注意的地方
    关于逻辑运算案例笔记
    数据的表现形式和进制之间的转换
  • 原文地址:https://www.cnblogs.com/PasserByOne/p/12163589.html
Copyright © 2011-2022 走看看