每天一设计模式-单例模式
前言
单例模式(Singleton Pattern)属于创建型模式,它提供了一种创建对象的最佳方式,涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个该类对象被创建,提供了一种访问其唯一的对象的
方式,可以直接访问,一般不需要实力话该类的对象
⚠️ 有以下几个点需要注意:
- 单例类只能有一个实例;
- 单例类必须自己创建自己的唯一实例;
- 单例类必须给所有其他对象提供这一实例。
✨ 模式具体介绍:
意图:保证一个类仅有一个实例,并提供一个访问它的全局访问入口;
主要解决:一个全局使用的类频繁地创建于销毁;
何时使用:当我们需要控制实例的树木,节省系统资源的时候;
如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建;
关键代码:真正实例是私有的,无法直接方法的
ES5代码实现
javascript
1 | // LazySingle.js |
javascript
1 | // 实际调用的 |
优化后的ES6代码
javascript
1 | // LazySingle.js |
javascript
1 | // 具体使用的地方 |
其实目前的通过commonJS以及AMD的方式来模块化每一个对象的方式,就是一个单例模式,通过将方法以及属性对外暴露,对实现机制进行对内隐藏,就是达到一种单例模式编程的思维,
只不过通过此种方式,可以更加好的来管理我们的对象。
配合static关键词的代码
javascript
1 |
|
javascript
1 | // 使用方式,这基本上与Java中的单例模式使用无异 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 kbmjj123 DEV-大前端技术栈!