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

    单例模式的意思是只需要实例化某个类一次,它的方法也比较简单,通过判断某个类是否已经被实例化了,再返回该值。可以通过各种方法来实现单例模式,下面我们采取以下这种实现方式:

    var single = (function(window, undefined) {
    	var _u;//私有成员,
    	var newModel = function() {//需要创建的类
    		this.a = 'i am a';
    		this.b = 'i am b';
    		this.hello = 'i am a single Model';
    	}
    	newModel.prototype = {//原型扩展
    		constructor : newModel,
    		a : function() {
    			console.log(a);
    		},
    		b : function() {
    			console.log(b);
    		},
    		hello : function() {
    			console.log(this.hello);
    		}
    	}
    	return {
    		createSingleModule : function() {//暴露共有方法
    			return (_u || (_u = new newModel()));//如果该类实例过了,就返回。没有则重新实例化。
    		}
    	}
    })(window, undefined);
    

    通过以上代码,我们简单地实现了该模式。在实际情况中,我们可能会需要创建一个组件,这个组件是唯一一个,比如遮盖背景。在这样的情况下采用单例模式是非常明智的选择。

    在使用单例的模式我们可以考虑一下几点,以帮助你判断是否应该采用此模式构建你的项目:

    1.当类只能由一个实例,并且它很容易从公共访问点对它进行访问时候。

    2.该类的实例是可以通过子类化进行扩展的,并且客户无需更改代码就能使用一个扩展的实例的时候。

    single.createSingleModule();//创建一个单例的实例化对象,不管此函数执行多少次,返回的对象总是同一个。newModel只会被实例化一次。
    
  • 相关阅读:
    2031 HDOJ 进制转换
    计算机视觉实验之直方图均衡化和对数变换
    sublime text3创建文件时生成头部注释
    浏览器调试出错
    css世界-读书笔记
    redis中Bitmaps位图应用场景
    redis中hyperloglog基数统计
    redis中Zset有序集合类型常用命令
    redis中set集合类型常用命令
    redis中hash哈希类型常用命令
  • 原文地址:https://www.cnblogs.com/constantince/p/4331817.html
Copyright © 2011-2022 走看看