什么是单例设计模式
1、保证一个类只能创建一个实例,并且提供访问他的全局访问点
例如:登录按钮,点击创建一次登录浮框,再点击不会创建,会返回刚才创建的浮框。常见的应用场景:线程池、全局缓存、浏览器window对象
通用的惰性单例具备以下特点
- 在需要的时候才创建
- 把管理单例和创建对象分为两个方法来实现
- 遵守单一责任原则
通用的惰性单例案例
封装一个通用的管理单例的方法,最后返回一个函数,用于惰性调用(这一个块是不变的,便于复用)
var getSingle = function(fn) { var result return function() { return result || (result = fn.apply(this, arguments)) } }
创建对象的方法(这个跟据具体情况创建)
var createDiv = function() { let div = document.createElement("div"); div.style.display = "none"; div.innerText = "输入密码登录" document.body.appendChild(div); return div }
使用单例
var createSingleLayer = getSingle(createDiv);
调用单例方法
document.getElementById("btn").onclick = function() { let div = createSingleLayer(); div.style.display = "block"; }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。