返回顶部
首页 > 资讯 > 前端开发 > JavaScript >解析Javascript设计模式Revealing Module 揭示模式单例模式
  • 460
分享到

解析Javascript设计模式Revealing Module 揭示模式单例模式

2024-04-02 19:04:59 460人浏览 安东尼
摘要

目录1. Revealing Module 揭示模式2. Singleton 单例模式1. Revealing Module 揭示模式 该模式能够在私有范围内简单定义所有的函数和变量

1. Revealing Module 揭示模式

该模式能够在私有范围内简单定义所有的函数和变量,并返回一个匿名对象, 它拥有指向私有函数的指针,该函数是他希望展示为公有的方法。

示例:

<script>
var myRevealingModule = function () {
    var privateVar = "Ren Cherry",
            publicVar = "Hey there";
    function privateFunction() {
            console.log("Name:"+privateVar);
    }
    function publicSetName(strName) {
            privateName = strName;
    }
    function publicGetName() {
            privateFunction();
    }
    //将暴露的公有指针指向到私有函数和属性上
    return {
            setName: publicSetName,
            greeting: publicvar,
            getName: publicGetName
    };
}();
myRevealingModule.setName("Paul Kinlan");
</script>

优点:

  • 该模式很容易之处哪些函数和变量可被公开访问,改善了可读性。
  • 如果一个私有函数引用一个公有函数,在需要打补丁时,公有函数是不能被覆盖的。 因为私有函数将继续引用私有实现,该模式并不适用于公有成员,只使用函数。

2. Singleton 单例模式

单例模式,能够限制类的实例化次数只能为一次。单例模式,在该实例不存在的情况下, 可以通过一个方法创建一个类来实现创建类的新实例;如果实例已经存在,它会简单返回该对象的引用;

示例:

<script type="text/javascript">
var mySingleton = (function () {
        //实例保持了singleton 的一个引用
        var instance;
        function init() {
                //singleton
                //私有方法和变量
                function privateMethod() {
                        console.log("I am private");
                }
                var privateVariable = "I am also private";
                var privateRandomNumber = Math.random();
                return {
                        //公有方法和变量
                        publicMethod: function () {
                                console.log("The public can see me!");
                        },
                        publicProperty: "I am also public",
                        getRandomNumber: function() {
                                return privateRandomNumber;
                        }
                };
        };
        return {
                //获取singleton 的实例,如果存在就返回,不存在就创建新实例
                getInstance: function() {
                        if(!instance) {
                                instance = init();
                        }
                        return instance;
                }
        };
})();
var singleA = mySingleton.getInstance();
var singleB = mySingleton.getInstance();
console.log(singleA.getRandomNumber()===singleB.getRandomNumber());//true
</script>

在实践中,当在系统中确实需要一个对象来协调其他对象时,>Singleton模式很有用。

示例:

<script type="text/javascript">
var SingletonTester = (function() {
        //options: 包含singleton所需配置信息的对象
        //var options = {name:"test",pointX:5};
        function Singleton(options) {
                //如果未提供options,则设置为空对象
                options = options || {};
                //为singleton设置一些属性
                this.name = "SingletonTester";
                this.pointX = options.pointX || 6;
                this.pointY = options.pointY || 10;
        }
        //实例持有者
        var instance;
        //静态变量和方法的模拟
        var _static = {
                name: "SingletonTester",
                //获取实例的方法,返回singleton对象的singleton实例
                getInstance: function(options) {
                        if(instance === undefined) {
                                instance = new Singleton(options);
                        }
                        return instance;
                };
                return _static;
        }
})();
var singletonTest = SingletonTester.getInstance({
        pointX: 5
});
console.log(singletonTest.pointX);//5
</script>

以上就是解析Javascript设计模式Revealing Module 揭示模式单例模式的详细内容,更多关于js 揭示模式单例模式的资料请关注编程网其它相关文章!

--结束END--

本文标题: 解析Javascript设计模式Revealing Module 揭示模式单例模式

本文链接: https://lsjlt.com/news/165976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解析Javascript设计模式Revealing Module 揭示模式单例模式
    目录1. Revealing Module 揭示模式2. Singleton 单例模式1. Revealing Module 揭示模式 该模式能够在私有范围内简单定义所有的函数和变量...
    99+
    2024-04-02
  • JavaScript设计模式之单例模式
    目录单例模式实现单例模式透明的单例模式用代理实现单例模式惰性单例通用的惰性单例小结单例模式 单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 ...
    99+
    2022-11-13
    JavaScript设计模式 JavaScript单例模式
  • Android设计模式之单例模式解析
    在日常开发过程中时常需要用到设计模式,但是设计模式有23种,如何将这些设计模式了然于胸并且能在实际开发过程中应用得得心应手呢?和我一起跟着《Android源码设计模式解析与实战》一书边学边应用吧!今天我们要讲的是单例模式定义确保某一个类只有...
    99+
    2023-05-30
    android 单例模式 之单
  • java设计模式之单例模式解析
    单例模式是最简单但同时也是很重要的一种设计模式,优点有以下几个方面:当内存占用特别大的类需要频繁地创建销毁时,单例模式可以节省内存和提高性能,例如myBatis里面的sessionFactory当需要对文件做单一读写时,例如同一时间只能同时...
    99+
    2023-05-31
    java 设计模式 单例模式
  • JavaScript中的设计模式 单例模式
    目录1、什么是设计模式2、设计模式五大设计原则(SOLID)3、为什么需要设计模式?4、单例模式前言: 设计模式在我们编程中是十分重要的! 设计模式(Design pattern)...
    99+
    2024-04-02
  • 理解JavaScript设计模式中的单例模式
    单例模式(Singleton Pattern)是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 单例模式涉及到一个单一的类,该类负责创建自己...
    99+
    2024-04-02
  • Java设计模式之单例模式示例详解
    目录0.概述1.饿汉式1.1 饿汉式单例实现1.2 破坏单例的几种情况1.3 预防单例的破坏2.枚举饿汉式2.1 枚举单例实现2.2 破坏单例3.懒汉式4.双检锁懒汉式5.内部类懒汉...
    99+
    2024-04-02
  • 【python 设计模式】单例模式
    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中...
    99+
    2023-01-31
    模式 python
  • Python设计模式——单例模式
    一、单例模式理论单例模式:    保证某一个类只有一个实例,而且在全局只有一个访问点优点:    1、由于单例模式要求在全局内只有一个实例,因而可以节省比较多的内存空间    2、全局只有一个接入点,可以更好地进行数据同步控制,避免多重占用...
    99+
    2023-01-31
    模式 Python
  • Java设计模式-单例模式
    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供...
    99+
    2023-06-05
  • JavaScript设计模式之工厂模式的示例分析
    这篇文章主要为大家展示了“JavaScript设计模式之工厂模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaS...
    99+
    2024-04-02
  • JavaScript设计模式之代理模式的示例分析
    这篇文章主要为大家展示了“JavaScript设计模式之代理模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript设计模式之代理模式的...
    99+
    2024-04-02
  • JavaScript设计模式之命令模式的示例分析
    小编给大家分享一下JavaScript设计模式之命令模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!javascript是一种什么语言javascri...
    99+
    2023-06-14
  • Android设计模式之单例模式
      1、单例模式常见情景   设计模式中,简单不过的是单例模式。先看看单例模式   Singleton模式可以是很简单的,它的全部只需要一个类可以完成(看看这章可怜的U...
    99+
    2022-06-06
    单例模式 Android
  • Java设计模式之单例模式
    目录什么是设计模式?单例模式是什么?单例模式设计的原则是什么?Java实现单例模式的5种方式?懒汉饿汉静态内部类双重校验锁DCL(Double Check Lock)枚举(num)总...
    99+
    2024-04-02
  • C#设计模式之单例模式
    单例模式也是创建型模式的一种,也是23种设计模式中比较简单的一种。见名思意,在整个软件系统中,只有某个类型的一个对象,并且访问他的地方也只有一个,也就是只有一个全局对象访问点,这个实...
    99+
    2024-04-02
  • python设计模式之单例模式
    单例模式是一种创建型设计模式,它确保一个类有且只有一个特定类型的对象,并提供全局访问点。其意图为: 确保类有且只有一个对象被创建 为对象提供一个访问点,使程序可以全局访问该对象 控制共享资源的并行访问 简单理解:单例...
    99+
    2023-01-30
    模式 python
  • Java设计模式的单例模式实例分析
    本文小编为大家详细介绍“Java设计模式的单例模式实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java设计模式的单例模式实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是单例模式单例模式(S...
    99+
    2023-06-29
  • JAVA设计模式之单例模式详解
    目录前言一、单例模式是什么?二、懒汉式单例三、饿汉式单例四、双重校验锁总结前言 在之前的文章里已经介绍了设计模式以及设计原则的概念,接下来我们从单例模式入手深入学习几种常用的JAVA...
    99+
    2024-04-02
  • C++设计模式之单例模式详解
    目录单例模式:就是只有一个实例。单例模式又分为两种基本的情形:饿汉式和懒汉式如下是懒汉式单例类小结:继续看单例模式总结单例模式:就是只有一个实例。 singleton pattern...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作