`

javascript设计模式之单例模式

阅读更多

          单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。

          在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法:

     

var mySingleton = {
    property1: "something",
    property2: "something else",
    method1: function () {
        console.log('hello world');
    }
};

          如果以后要扩展该对象,你可以添加自己的私有成员和方法,然后使用闭包在其内部封装这些变量和函数声明。只暴露你想暴露的public成员和方法,样例代码如下:

 

 

<script>

    function objZim() {
        var single = mySingleton();
        single.publicMethod();
        alert(single.publicVar);
    }

    var mySingleton = function() {
        /*这里申明私有变量和方法*/
        var privateVariable = 'something private';

        function showPrivate() {
            alert(privateVariable);
        }

/*公有变量和方法(可以访问私有变量和方法)*/
        return {
            publicMethod: function() {
                showPrivate();
            },
            publicVar: 'the public can see this'
        };
    }
</script>

           但如果我们想做到只有在使用的时候才初始化,那该如何做呢?为了节约资源的目的,我们可以另外一个构造函数里来初始化这些代码,如下:

 

<script>
    
    /*只有在使用的时候才初始化*/
    var Singleton = (function() {
        var instantiated;
        /*创建私有方法*/
        function init() {
            return {
                publicMethod: function() {
                    alert("hello word");
                },
                pubicProperty: 'test'
            };
        }
        return {
            getInstance:function() {
                if (!instantiated) {
                    instantiated = init();
                }
                return instantiated;
            }
        }
    })();
    Singleton.getInstance().publicMethod();
</script>

 

分享到:
评论

相关推荐

    JavaScript设计模式之单例模式.md

    为了帮助大家快速和较好地理解JavaScript设计模式中的单例模式,本文对JavaScript的单例模式进行了分析并进行简易的代码演示,希望本文能够给有需要的人带来一点小小的帮助。

    JavaScript设计模式之单例模式原理与用法实例分析

    本文实例讲述了JavaScript设计模式之单例模式原理与用法。分享给大家供大家参考,具体如下: 单例模式的定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式是一种常用的模式,有些对象只需要一...

    JavaScript设计模式之单例模式简单实例教程

    本文实例讲述了JavaScript设计模式之单例模式。分享给大家供大家参考,具体如下: 一、单例模式概念 单例就是保证一个类只有一个实例,实现方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再...

    JavaScript设计模式之单例模式实例

    主要介绍了JavaScript设计模式之单例模式实例,本文用一个实际例子讲解JavaScript中的单例模式,需要的朋友可以参考下

    JavaScript设计模式之单例模式详解

    这一次重温一下《JavaScript设计模式与开发实践》,开篇为单例模式。 /** * pre 单例模式 * 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 应用:单例模式是一种常用的模式,有一些对象我们...

    学习JavaScript设计模式之单例模式

    主要为大家介绍了JavaScript设计模式中的单例模式,对JavaScript设计模式感兴趣的小伙伴们可以参考一下

    JavaScript设计模式中的单例模式和观察者模式.docx

    本篇文章简单介绍了JavaScript设计模式中的两种,分别是单例模式和观察者模式,并且举了例子便于理解,希望大家一起交流,共同进步。

    javascript设计模式 – 单例模式原理与应用实例分析

    本文实例讲述了javascript设计模式 – 单例模式。分享给大家供大家参考,具体如下: 介绍:单例模式是结构最简单的设计模式。单例模式用于创建那些在软件系统中独一无二的对象,是一个简单但很实用的设计模式。 定义...

    JS 设计模式之:单例模式定义与实现方法浅析

    本文实例讲述了JS 设计模式之:单例模式定义与实现方法。分享给大家供大家参考,具体如下: 良好的设计模式可以显著提高代码的可读性,降低复杂度和维护成本。笔者打算通过几篇文章通俗地讲一讲常见的或者实用的设计...

    JavaScript设计模式—单例模式详解【四种基本形式】

    本文实例讲述了JavaScript设计模式—单例模式.分享给大家供大家参考,具体如下: 单例模式也称为单体模式,其中: 1,单体模式用于创建命名空间,将系列关联的属性和方法组织成一个逻辑单元,减少全局变量。  逻辑...

    学习JavaScript设计模式(单例模式)

    主要带领大家学习JavaScript设计模式,其中重点介绍单例模式,举例说明单例模式的技术、弊端等,对单例模式进行详细剖析,感兴趣的小伙伴们可以参考一下

    js设计模式之单例模式原理与用法详解

    主要介绍了js设计模式之单例模式原理与用法,结合实例形式详细分析了javascript单例模式的概念、原理、用法及相关操作注意事项,需要的朋友可以参考下

    JavaScript实现设计模式中的单例模式的一些技巧总结

    单例模式是JavaScript项目中最常用的设计模式之一,下面罗列了JavaScript实现设计模式中的单例模式的一些技巧总结,包括惰性加载与分支技术等,需要的朋友可以参考下.

    深入理解JavaScript系列(25):设计模式之单例模式详解

    从本章开始,我们会逐步介绍在JavaScript里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现。OK,正式开始。 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法...

Global site tag (gtag.js) - Google Analytics