什么是单例设计模式

1、保证一个类只能创建一个实例,并且提供访问他的全局访问点
例如:登录按钮,点击创建一次登录浮框,再点击不会创建,会返回刚才创建的浮框。常见的应用场景:线程池、全局缓存、浏览器window对象

通用的惰性单例具备以下特点

  1. 在需要的时候才创建
  2. 把管理单例和创建对象分为两个方法来实现
  3. 遵守单一责任原则

通用的惰性单例案例

  1. 封装一个通用的管理单例的方法,最后返回一个函数,用于惰性调用(这一个块是不变的,便于复用)

     var getSingle = function(fn) {
                   var result
                   return function() {
                       return result || (result = fn.apply(this, arguments))
                   }
               }
  2. 创建对象的方法(这个跟据具体情况创建)

     var createDiv = function() {
                   let div = document.createElement("div");
                   div.style.display = "none";
                   div.innerText = "输入密码登录"
                   document.body.appendChild(div);
                   return div
               }
  3. 使用单例

    var createSingleLayer = getSingle(createDiv);
  4. 调用单例方法

    document.getElementById("btn").onclick = function() {
               let div = createSingleLayer();
               div.style.display = "block";
           }

一声蔷薇udVkP
25 声望3 粉丝

未来可期