单例模式
定义:单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。
在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。
举例:模态框、登录控件、注销控件
下面均以登录模态框做说明
引入代理实现单例模式
|
|
PS:我们负责管理单例的逻辑移到了代理类ProxySingletonCreateDiv中。
这样一来,CreateDiv就变成了一个普通的类,他跟ProxySingletonCreateDiv组合起来可以达到单例模式的效果。
通用的单例模式
|
|
这时不管你执行多少次 createSingleLoginLoyer() 方法,都只会生产一个 div 节点。
我们的通用单例模式就完成了。
惰性单例
定义:惰性单例指的是在需要的时候才创建对象的实例。
以创建登录模态框为例
这里的对惰性单例的实现主要是只有单例了网页上的登录按钮,才会去创建,登录框的dom节点,并且只是创建一次。