`

Javascript-设计模式之单例模式

阅读更多
/**
 * 单例模式一
 * 个人更倾向这种,代码简介
 */
var Singleton = (function(){
    var instantiated;
    function init(){
        /*singleton code here*/
        return {
            publicMethod: function(){
                console.log('hello world');
            },
            publicProperty: 'test'
        };
    }
    
    return {
        getInstance: function(){
            if (!instantiated) {
                instantiated = init();
            }
            return instantiated;
        }
    };
})();

/*calling public methods is then as easy as:*/
Singleton.getInstance().publicMethod();

/**
 * 单例模式二
 */
var SingletonTester = (function(){

    //args: an object containing arguments for the singleton
    function Singleton(args){
    
        //set args variable to args passed or empty object if none provided.
        var args = args || {};
        //set the name parameter
        this.name = 'SingletonTester';
        //set the value of pointX
        this.pointX = args.pointX || 6; //get parameter from arguments or set default
        //set the value of pointY
        this.pointY = args.pointY || 10;
        
    }
    
    //this is our instance holder
    var instance;
    
    //this is an emulation of static variables and methods
    var _static = {
        name: 'SingletonTester',
        //This is a method for getting an instance
        
        //It returns a singleton instance of a singleton object
        getInstance: function(args){
            if (instance === undefined) {
                instance = new Singleton(args);
            }
            return instance;
        }
    };
    return _static;
})();

var singletonTest = SingletonTester.getInstance({
    pointX: 5
});
console.log(singletonTest.pointX); // outputs 5 

分享到:
评论

相关推荐

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

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

    js代码-设计模式之单例模式1

    综上所述,"js代码-设计模式之单例模式1"这个主题主要涵盖了JavaScript中的单例模式实现,包括闭包的使用和单例模式的优缺点。通过`main.js`和`README.txt`,我们可以学习如何创建和使用单例,以及在实际项目中应用...

    js代码-设计模式之单例模式2

    单例模式是软件设计模式中的一种经典模式,它确保一个类只有一个实例,并提供一个全局访问点。在JavaScript中,由于其动态特性和全局作用域,实现单例模式有多种方式。我们将深入探讨单例模式的概念、重要性以及如何...

    js代码-设计模式之单例模式--简单版

    单例模式是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在JavaScript中,由于其动态特性和全局作用域,实现单例模式有多种方法。下面我们将详细探讨单例模式的基本概念、重要性以及如何...

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

    ### JavaScript设计模式详解:单例模式与观察者模式 #### 一、单例模式 **定义**:单例模式是一种常用的软件设计模式,其目的是确保某个类只有一个实例,并且能够提供一个全局访问点来访问该实例。在JavaScript中...

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

    单例模式是软件开发中一种非常重要的设计模式,它确保一个类只有一个实例,并提供一个全局访问点。在JavaScript这样的动态语言中,单例模式的实现方式很多样,而且可以非常灵活。下面,我们就来深入探讨单例模式在...

    JavaScript设计模式+JavaScript模式+JavaScript异步编程

    1. **JavaScript设计模式**: 设计模式是软件工程中经过实践验证的、解决常见问题的有效方法。在JavaScript中,常见的设计模式包括: - 单例模式:确保一个类只有一个实例,并提供全局访问点。 - 工厂模式:创建...

    JavaScript 设计模式(高清扫描版本)- 张容铭

    JavaScript设计模式是由张容铭编著的一本关于JavaScript编程领域的重要参考书籍,主要探讨了如何在JavaScript编程中应用设计模式来提升代码质量和可维护性。设计模式是软件工程中的最佳实践,它们是针对常见问题的...

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

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

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

    以上四种单例模式在JavaScript中都有其适用的场景,开发者可以根据实际需求选择合适的设计模式。单例模式在JavaScript中的应用广泛,比如管理DOM元素、提供全局配置、控制页面的公共资源等。理解并熟练运用单例模式...

    设计模式的工厂模式,单例模式

    在给定的标题和描述中,我们关注的是两种重要的设计模式:工厂模式和单例模式。 **工厂模式**是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端需要创建一个对象时,而不是直接创建,...

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

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

    js代码-设计模式---单例模式

    总结来说,JavaScript中的单例模式是一种强大的设计模式,它可以提高代码的组织性和可维护性,特别是在处理资源管理和全局状态时。理解并熟练运用单例模式,对于提升JavaScript开发水平和编写高质量代码至关重要。

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

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

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

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

    js代码-js设计模式-单例模式

    **JavaScript设计模式——单例模式详解** 在JavaScript编程中,设计模式是一种被广泛接受和使用的解决方案,用于解决常见的编程问题,提升代码的质量和可维护性。单例模式是设计模式中的一种,它确保一个类只有一个...

Global site tag (gtag.js) - Google Analytics