今天不太舒服。。。可是不想断更。
最近感觉到技术的提高有点迷惘。其实前端东西挺杂,有些地方有时候想不起来倒没什么,做过笔记的就翻一翻,某个bug研究觉得奇怪就查一查。技术博客、论坛帖子看多了就发现内功才是最重要的。
这时候设计模式就登场了。单例算是最基础最简单的一个设计模式了:
该类只有一个实例,且提供全局访问点。
没错,就是上面那句话。
1 var singleton = (function() { 2 var instance; 3 function init() { 4 //定义私有变量和方法 5 //... 6 return { 7 //返回公有变量和方法 8 //... 9 } 10 } 11 return { 12 //对外暴露获取实例的接口 13 getInstance:function() { 14 if(!instance){ 15 instance = init(); 16 } 17 return instance; 18 } 19 } 20 })()
上面是个最简单的单例的构建方法,在一个自执行匿名函数中返回单例的接口。
讲真,刚接触的时候我首先想到的是用单例来实现全局弹窗,但想想觉得完全没必要。后来看到某书中举得单例的例子是创建唯一id呀、web页面行为的计数啊什么的,恍然大悟。但其实,重点还是全局可访问啦,毕竟单个实例节省了开销。vuex的设计思想也是创建一个全局可访问的store,存储共享状态的变量,然后在其他组件中引用这些变量,只是vuex不是一个单纯的单利例而已。
上次买了本《js设计模式》,硬着头皮看了70%,大半年前的事情了。现在都忘得差不多了。。。。羞愧