博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式之单例模式
阅读量:4098 次
发布时间:2019-05-25

本文共 901 字,大约阅读时间需要 3 分钟。

单例模式应该是设计模式中最简单的模式了,所以经常被设计模式课程作为入门模式进行讲解。

单例模式本身比较简单,其实也就是一句话,一次只能建一个对象实例,再看看代码示例就更清楚了。

public class Singleton {
private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }

但是在实际工作中,尤其在面试中,老有人会问你线程安全的单例怎么写,这一点也需要注意一下。

package com.creational;public class Singleton {
private static Singleton instance; private Singleton(){} public static synchronized Singleton getSingleton(){ if(instance == null){ instance = new Singleton(); } return instance; } public void doSomething(){}}

上面举得栗子呢比较简单,当然还要很多其他形式的单例模式,请参考

今天想到一个问题,就是单例模式跟一次只能一个进程(比如安装Microsoft Office,一个安装正在进行中,如果再双击install.exe安装文件,会提示只能启动一个实例)到底有啥关系?

答案是没有卵关系,前者是在单一进程中对象实例的控制,后者呢编程语言本身不提供这样的功能,这个需要操作系统共同配合才可以。

最后还是上一张单例的UML图:

这里写图片描述

参考文献:

你可能感兴趣的文章
你不知道的Virtual DOM
查看>>
VUE面试题总结
查看>>
【TINY4412】U-BOOT移植笔记:(7)SDRAM驱动
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
【Unity】微信登录后将头像存为bytes,将bytes读取成sprite图片
查看>>
【Unity】使用GPS定位经纬度
查看>>
如何高效学习动态规划?
查看>>
动态规划法(六)鸡蛋掉落问题(一)
查看>>
算法数据结构 思维导图学习系列(1)- 数据结构 8种数据结构 数组(Array)链表(Linked List)队列(Queue)栈(Stack)树(Tree)散列表(Hash)堆(Heap)图
查看>>
【机器学习】机器学习系统SysML 阅读表
查看>>
最小费用流 Bellman-Ford与Dijkstra 模板
查看>>
实现高性能纠删码引擎 | 纠删码技术详解(下)
查看>>
scala(1)----windows环境下安装scala以及idea开发环境下配置scala
查看>>
zookeeper(3)---zookeeper API的简单使用(增删改查操作)
查看>>
zookeeper(4)---监听器Watcher
查看>>
mapReduce(3)---入门示例WordCount
查看>>
hbase(3)---shell操作
查看>>
hbase(1)---概述
查看>>