为了知道大牛是如何应用设计模式的,我喜欢扒一扒知名项目中的源码。
单例模式的使用场景其实还挺简单,就是一个类只允许创建一个对象,全局共享使用这个对象。
在 Java 中实现单例,需要考虑是否懒加载、是否线程安全的问题,实现方式:饿汉式、懒汉式、双重检查、静态内部类、枚举。具体实现代码
JDK 中 java.lang.Runtime 类,每个运行中的 Java 应用的环境信息,单例。
看下它的注释:
* Every Java application has a single instance of class
* <code>Runtime</code> that allows the application to interface with
* the environment in which the application is running. The current
* runtime can be obtained from the <code>getRuntime</code> method.
* <p>
* An application cannot create its own instance of this class.
看下它的部分源码:
public class Runtime {
private static Runtime currentRuntime = new Runtime();
public static Runtime getRuntime() {
return currentRuntime;
}
private Runtime() {}
.
.
.
}
这是单例模式经典的实现方式之一:饿汉式
ConstXiong 备案号:苏ICP备16009629号-3