单例模式(Singleton Pattern):
1 2 3 |
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 目的:阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。 场景:如一个系统中可以存在多个打印任务,但是同时只能有一个正在工作的任务。 |
例:JS代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// 惰性单例 let lazySingle = (() => { let _instance = null // 单例 Single = () => { let privateAttribute = '我是私有属性' privateMethod = () => { // 私有方法 } return { publicMethod: () => { // 对外暴露方法 }, publicAttribute: '我是对外暴露属性' } } // 提供一个全局访问点 return () => { if (!_instance) { _instance = Single() } return _instance } })() |