网上一些讲设计模式的文章,一点都不负责。就把代码啪叽!一丢。读者能学到啥?
javascript 这门语言是没有类的概念的,所有的实例本质上都是从另一个实例克隆来的。
所以我自己来给兄弟们写一套详细的吧!我尽量用最少的文字,最少的篇幅,讲明白设计模式的方方面面。
文章连接
理解单利模式
确保只有一个实例,并提供全局访问。
例如 redux 中的 store,线程池,全局缓存,浏览器 window 对象等。
上代码:通用的惰性单利模式
let getSingle = function(fn) {
let result = 'initial_single';
return function() {
if (result === 'initial_single') {
result = fn.apply(this, arguments);
}
return result;
}
}
// 测试 -----
let Tree = function() {
console.log('something')
}
let getSingleTree = getSingle(Tree)
getSingleTree() // 第一次调用时输出:console.log('something')
getSingleTree() //
getSingleTree()