时间:2021-05-26
单例模式也称作为单子模式,更多的也叫做单体模式。为软件设计中较为简单但是最为常用的一种设计模式。
单例模式的介绍:
在应用单例模式时,生成单例的类必须保证只有一个实例的存在,很多时候整个系统只需要拥有一个全局对象,才有利于协调系统整体的行为。比如在整个系统的配置文件中,配置数据有一个单例对象进行统一读取和修改,其他对象需要配置数据的时候也统一通过该单例对象来获取配置数据,这样就可以简化复杂环境下的配置管理。
单例模式的思路是:一个类能返回一个对象的引用(并且永远是同一个)和一个获得该实例的方法(静态方法,通常使用 getInstance 名称)。那么当我们调用这个方法时,如果类持有的引用不为空就返回该引用,否者就创建该类的实例,并且将实例引用赋值给该类保持的那个引用再返回。同时将该类的构造函数定义为私有方法,避免其他函数使用该构造函数来实例化对象,只通过该类的静态方法来得到该类的唯一实例。
一般情况下,Javascript每次new一个对象就产生一个实例,实例指向不同的地址。就像如下:
(function(){function Person(name){this.name = name;}Person.prototype.work = function(){console.log(this.name + " is working");}var p1 = new Person("Darren");p1.work();var p2 = new Person("Jack");p2.work();}());以上,每次new出一个Person对象都是不同的。
如何在Javascript中实现单例模式呢?
--在生成某各对象时先判断是否存在。存在就不生成对象,不存在就生成对象。
(function(){var PersonSingleton = (function(){var instance;function init(){return {name: 'Anonymous',work: function(){console.log(this.name + ' working');}};}return {getInstance: function(){if(!instantiated){instantiated = init();}return instantiated;}}})();var p1 = PersonSingleton.getInstance();p1.work();var p2 = PersonSingleton.getInstance();p2.work();}());以上,通过PsonSIngleton对象的getInstance方法得到的实例每次都是一样的。
关于javascript单例模式的相关知识就给大介绍到这里,希望对大家有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
首先,了解一下什么是单例模式,这里我直接把菜鸟教程中的定义给copy过来:单例模式(SingletonPattern)是Java中最简单的设计模式之一。这种类型
传统单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现单例核心思想无非是用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该
本文实例讲述了javascript单例模式的简单实现方法。分享给大家供大家参考。具体实现方法如下:functionSingeInstance(){if(!Sin
一、单例模式a、单例模式分为四种:文件,类,基于__new__方法实现单例模式,基于metaclass方式实现b、类实现如下:classSigletion(ob
本文实例讲述了javascript设计模式–单例模式。分享给大家供大家参考,具体如下:介绍:单例模式是结构最简单的设计模式。单例模式用于创建那些在软件系统中独一