使用闭包创建“单例模式”

2017-07-03  本文已影响0人  xywait

单例的好处:单例只会被创建一次,所以不用担心在构造函数里声明了多少个成员。

单体的创建结构:

(function(){

 return {};

})()

我们可以把公用成员添加到单体返回的那个对象中。

例如:

MyNamespace.Singleton = (function(){

      return{

            publicAttribute1:true,

            publicAttribute2:10,

            publicMethod1:function(){};

            publicMethod2:function(){};

     }

})()

优点:这个包装函数创建了一个可以用来添加真正的私有成员的闭包。任何声明在这个匿名函数中(但不在这个返回的对象字面量中)的变量或函数都能被在同一个闭包中声明的其他函数访问。

在单例模式中,你可以享受到真正的私用成员带来的所有好处,而不必付出什么代价,这是因为“单例模式”只会被实例化一次。

惰性实例化

对于资源密集型或者配置开销甚大的单体,也许更合理的做法是将其实例化推迟到需要使用它的时候。

上一篇 下一篇

猜你喜欢

热点阅读