单例模式
@(记录)[读书笔记]
单例模式:保证一个类中仅有一个实例,并提供一个访问它的全局访问点。
有一些对象我们往往只需要一个,比如线程池,全局缓存,浏览器的window对象等等,在JavaScript开发中,单例模式应用十分广泛。当我们点击登录按钮的时候,页面出现一个登录的浮窗,而这个登录浮窗是唯一的,无论单击多少次登录按钮,这个浮窗都只会被创建一次,那么这个登录浮窗适合用单例模式来创建。
实现起来就是使用一个变量标记当前是否已经为类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象。
|
|
通过Singleton.getInstance获取Singleton类的唯一对象。和Java实现的单例模式一样,通常是通过在类中实现getInstance方法来设置唯一的对象。
透明的单例模式:用户从类中创建对象的时候,可以像使用其他任何普通类一样(使用new创建)
用代理实现单例模式
惰性单例模式:在需要的时候才创建对象实例,在调用getInstance方法的时候才创建对象或者如果对象已经存在的话,直接返回对象;
设计模式中考虑的原则有很多,基本的是:单一原则,最少知识原则,开放-封闭原则……
下面单例违反了单一原则,单一是说每一个函数或者对象的职责是独立单一的不合其他职责混合
创建对象和管理单例的逻辑都放在createLoginLayer对象内部了,违反了单一原则。
通用的惰性单例,
|
|