标签:col blog instance 实例化 return ons str 有一个 变化
单例模式
一个类只能有一个实例化对象。如页面中的弹出框蒙层,一个页面只需要一个。
实现方式:创建一个类,这个类包含一个方法,这个方法在没有对象存在的情况下,将会创建一个新的实例对象。如果对象存在,这个对象只是返回这个对象的引用。
var singleton = (function singleton () { var instance = null; // 存储单例实例的引用
// 创建单例 function init () {
// 私有方法和属性 function privateMethod () { console.log(‘this is a private method!‘) } var privateVariable = ‘I am a private variable!‘ return {
// 公有方法和属性 publicMethod: function () { console.log(‘public‘) }, getPrivateVariable: function () { return privateVariable } } } return { getInstance: function () { if (!instance) { instance = init(); } return instance; } } })();
此方法不够抽象,假如我们需要创建单例函数发生变化呢?所以我们进一步抽象函数
var singleton = function (fn) { var instance = null; return function () { return instance || fn.call(this, arguments) } }
标签:col blog instance 实例化 return ons str 有一个 变化
原文地址:http://www.cnblogs.com/running1/p/7523380.html