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

       单例,指的是只有一个实例的对象。

       在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为。比如在整个系统的配置文件中,配置数据有一个单例对象进行统一读取和修改,其他对象需要配置数据的时候也统一通过该单例对象来获取配置数据,这样就可以简化复杂环境下的配置管理。

       实现一:对象字面量

    1 var singleton = {
    2         name : value,
    3         method : function(){
    4                      //这里是方法内容
    5         }
    6  };

       实现二:构造函数内部判断

     1 function Construct(){
     2     // 确保只有单例
     3     if( Construct.unique !== undefined ){
     4         return Construct.unique; 
     5     }
     6     // 其他代码
     7     this.name = "NYF";
     8     this.age="24";
     9     Construct.unique = this;
    10 }

      实现三:模块模式

     1 var singleton = function(){
     2       //私有变量与私有函数
     3      var privateVariable = 10;
     4 
     5      function privateFunction(){
     6         //.......
     7      }
     8 
     9      return{
    10          publicProperty : true,
    11 
    12          publicMethod : function(){
    13                privateVariable++;
    14                return privateFunction();
    15          }
    16      };
    17 }(); 

       实现四:增强的模块模式(单例必须是某种类型)

     1 var singleton = function(){
     2       var privateVariable = 10;
     3 
     4       function privateFunction(){
     5           return false;
     6       }
     7 
     8       var object = new SomeType();
     9 
    10       object.publicProperty = true;
    11 
    12       object.publicMethod = function(){
    13            privateVariable++;
    14            return privateFunction();
    15       };
    16 
    17       return object;
    18 }();
  • 相关阅读:
    常见寻找OEP脱壳的方法
    Windows内核原理系列01
    HDU 1025 Constructing Roads In JGShining's Kingdom
    HDU 1024 Max Sum Plus Plus
    HDU 1003 Max Sum
    HDU 1019 Least Common Multiple
    HDU 1018 Big Number
    HDU 1014 Uniform Generator
    HDU 1012 u Calculate e
    HDU 1005 Number Sequence
  • 原文地址:https://www.cnblogs.com/missuu/p/3765368.html
Copyright © 2011-2022 走看看