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 }();
  • 相关阅读:
    抽象与接口的综合练习
    java构造函数能否被继承,为什么?
    题解 【USACO 4.2.1】草地排水
    题解 【NOI2010】超级钢琴
    题解 [USACO Mar08] 奶牛跑步
    题解 【NOIP2016】魔法阵
    题解 对称二叉树
    题解 【NOIP2014】解方程
    题解 【NOIP2010】关押罪犯
    题解 贪吃蛇
  • 原文地址:https://www.cnblogs.com/missuu/p/3765368.html
Copyright © 2011-2022 走看看