单例的好处:单例只会被创建一次,所以不用担心在构造函数里声明了多少个成员。
单体的创建结构:
(function(){
return {};
})()
我们可以把公用成员添加到单体返回的那个对象中。
例如:
MyNamespace.Singleton = (function(){
return{
publicAttribute1:true,
publicAttribute2:10,
publicMethod1:function(){};
publicMethod2:function(){};
}
})()
优点:这个包装函数创建了一个可以用来添加真正的私有成员的闭包。任何声明在这个匿名函数中(但不在这个返回的对象字面量中)的变量或函数都能被在同一个闭包中声明的其他函数访问。
在单例模式中,你可以享受到真正的私用成员带来的所有好处,而不必付出什么代价,这是因为“单例模式”只会被实例化一次。
惰性实例化
对于资源密集型或者配置开销甚大的单体,也许更合理的做法是将其实例化推迟到需要使用它的时候。
网友评论