2016年3月2日 星期三

javascript: Singleton模式


一、介紹:單例模式就是一個類只有一個實例,實現方法通常是判斷該實例是否存在,存在則直接返回,不存在則創建後返回,如此便確保一個類僅有一個實例對象。

二、基本結構


 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);

沒有留言:

張貼留言