来个单例模式

一、实现一个单例并不复杂,无非就是用一个变量标志当前是否已经为某个类创建过对象,如果是,下次获取该类的实例时,直接返回之前创建的对象。下面简单实现一个标准的单例模式。
var Singleton = function (name) {
    this.name = name;
    this.instance = null;
};

Singleton.prototype.getName = function(){
    console.log(this.name);
};

Singleton.getInstance = function(name) {
    //console.log(this.instance);
    if(!this.instance){ 
        this.instance = new Singleton(name);
    }
    return this.instance;
};

var a = Singleton.getInstance('aa');
var b = Singleton.getInstance('bb');
console.log(b === s); //true

<b>二、如果引进代理模式,单例模式的代码指责就更情清晰了。</b>

 var CreateDiv = function (html) {
    this.html = html;
    this.init();
};

CreateDiv.prototype.init = function() {
    var div = document.createElement('div');
    div.innerHTML = this.html;
    document.body.appendChild(div);
};

var ProxySingletonCreateDiv = (function(){
    var instance;
    return function(html) {
        if(!instance){
            instance = new CreateDiv(html);
        }
        return instance;
    }
})();

var a= new ProxySingletonCreateDiv('aa');
var b = new ProxySingletonCreateDiv('bb');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式(SingletonPattern)一般被认为是最简单、最易理解的设计模式,也因为它的简洁易懂,是项目中最...
    成热了阅读 9,859评论 4 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,838评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,491评论 18 399
  • 1 单例模式的动机 对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务...
    justCode_阅读 5,321评论 2 9
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 9,391评论 1 15

友情链接更多精彩内容