一、介紹:單例模式就是一個類只有一個實例,實現方法通常是判斷該實例是否存在,存在則直接返回,不存在則創建後返回,如此便確保一個類僅有一個實例對象。
二、基本結構
var singleton = function() {
function publicMethod() {
console.log('This is public method');
}
return {
publicMethod: publicMethod,
publicVar: 'This is publicVar'
}
}
var single = singleton();
single.publicMethod();
console.log(single.publicVar);
三、基於上面的代碼,可以修改為需要時再進行實例化以避免不必要的浪費
var singleton = (function() {
var instantiated; //判斷是否被實例化過
function publicMethod() {
console.log('This is public method');
}
function getInstance() {
if (!instantiated) {
instantiated = {
publicMethod: publicMethod,
publicVar: 'This is publicVar'
}
}
return instantiated;
}
return {
getInstance: getInstance
}
})()//立即執行函式
var single = singleton.getInstance();
single.publicMethod();
console.log(single.publicVar);
留言
張貼留言