定义
保证一个类只有仅有一个实例,并提供一个全局访问它的访问点。
其实就是把实例存下来,下次获取的时候,返回被存下的实例。
实现方式
不透明的单例模式
必须通过Singleton.getInstance
获取Singleton
的实例,跟以往的使用new
关键字获取实例不同
1 | var Singleton = function(name){ |
透明的单例模式
可以使用new
关键字获取实例,就跟使用其他构造函数一样
1 | var CreateDiv = (function(){ |
代理实现单例模式
将管理单例的逻辑抽出到了代理类ProxySingletonCreateDiv
中,CreateDiv
变为一个普通的类,职责单一。
1 | var CreateDiv = function (html) { |
惰性单例
当需要的时候才去创建实例
比如点击创建标签,再第一次点击的时候使用变量保存是否创建过对象,如果有的话,下次直接使用
1 | let single = function(fn) { |