单例模式与开发实践

前言

       最近遇到一本好书,《javascript设计模式与开发实践》,品读了一下,觉得有些内容非常值得整理与学习,特此笔记。

 

单例模式

       单例模式是一种简单但非常实用的模式,特别是惰性单例模式,在合适的时候才创建对象,并且只创建唯一的一个。

 

简单的单例模式

      要实现一个简单的单例模式很简单,通过一个变量来标志即可。

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

惰性单例

       惰性单例是指在需要的时候才创建对象实例,这种技术在开发中非常有用。比如一个登陆框,如果一开始就作为DOM加载到页面中,用户可能不会用到,就浪费了DOM结构。

       所以我们应该在触发某些事件后再创建DIV,且保证该div唯一单例:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

提高通用性

      上面的惰性单例通过闭包写法已经非常简单,但是不够通用。我们可以将管理单例的逻辑从原来的代码中抽离出来,封装在getSingle中,然后将创建对象的方法fn当成参数动态传入getSingle函数:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

 

      这样我们就可以将业务逻辑写在各自的函数中,再传入getSingle即可:

 

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1

          一个较为完美的单例就实现啦。

由于上传附件及文字限制,有时部分图片、文字可能显示不了,详情请见:http://mp.weixin.qq.com/s?__biz=MzI5ODI3NzY2MA==&mid=100000117&idx=2&sn=756662765e19cb9609c4637be2b42a74#rd
欢迎大家一起交流。
扫描以下二维码,获取更多更精美文章!(扫码关注有意向不到的惊喜的哦!!)
 
关注我们微信订阅号( uniguytech100) 与服务号(uniguytech),获取更多更精美文章!
也欢迎加入【大家技术网讨论QQ群】,群号码:256175955,请备注你个人的介绍!让我们一起聊聊it的那些事!

转载于:https://my.oschina.net/uniguy/blog/680888

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值