单例模式(Singleton Pattern):

定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
目的:阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。
场景:如一个系统中可以存在多个打印任务,但是同时只能有一个正在工作的任务。

例:JS代码实现

// 惰性单例
let lazySingle = (() => {
let _instance = null
// 单例
Single = () => {
let privateAttribute = '我是私有属性'
privateMethod = () => {
// 私有方法
}
return {
publicMethod: () => {
// 对外暴露方法
},
publicAttribute: '我是对外暴露属性'
}
}
// 提供一个全局访问点
return () => {
if (!_instance) {
_instance = Single()
}
return _instance
}
})()

Git地址:https://github.com/skillnull/Design-Mode-Example

最新文章

  1. Hadoop集群配置过程中需要注意的问题
  2. nginx和tomcat的区别
  3. 开始学习Dojo
  4. JS正则表达式验证数字
  5. MongoDB (十一) MongoDB 排序文档
  6. Java [Leetcode 41]First Missing Positive
  7. Android高手进阶教程(七)之----Android 中Preferences的使用!
  8. linux于test 订购具体解释
  9. linux sort 用法
  10. [原]JavaScript总结
  11. 安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
  12. 网友RHCE认证考试经历
  13. C#中将ListView数据导出为excel(转载)
  14. Java SE 之 数据库操作工具类(DBUtil)设计
  15. mysql 问题:Unknown system variable 'query_cache_size'
  16. Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
  17. MFC onchar()
  18. js备忘录_1
  19. UVA 10815:Andy's First Dictionary(STL)
  20. openvswitch datapath 内核态流表创建过程(ovs_flow_cmd_new)

热门文章

  1. mysql-8.0解压缩版安装配置完整过程
  2. 梯度、Hessian矩阵、平面方程的法线以及函数导数的含义
  3. jQuery file upload cropper的流程
  4. 微信小程序 API 路由
  5. EasyHook(一)
  6. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
  7. 使用itchat获取微信好友的男女比例
  8. Oracle 高版本往低版本备份恢复的方法
  9. Element-ui 使用详细介绍
  10. freemarker进阶--项目中使用