单例模式
单例模式:程序运行时,让某个类在内存中只有一个对象,即让一个类只能创建一个对象。
一般分为懒汉式和饿汉式
饿汉式
有三步:
- 构造方法私有化
- 创建当前类对象
- 对外提供公共的访问方法将SingletonHungary对象暴露给外部
package com.sutaoyu.single_test; public class SingletonHungary { //1.构造方法私有化 private SingletonHungary(){ } //2.创建当前类对象 private static SingletonHungary s = new SingletonHungary(); //3.对外提供公共的访问方法将SingletonHungary对象暴露给外部 public static SingletonHungary getInstance() { return s; } }
懒汉式
- 构造方法私有化
- 创建当前类的引用
- 对外提供公共的访问方法将SingletonHungary对象暴露给外部
package com.sutaoyu.single_test; public class SingletonHungary { //1.构造方法私有化 private SingletonHungary(){ } //2.创建当前类对象 private static SingletonHungary s = new SingletonHungary(); //3.对外提供公共的访问方法将SingletonHungary对象暴露给外部 public static SingletonHungary getInstance() { return s; } }
单例模式的案例Runtime
java.lang包下的Runtime类使用了单例模式,使用该类可以执行windows系统里面的一些命令,例如:mspaint(打开画图软件),shutdown(关机)等等。
下面代码演示了使用Runtime类打开画图软件:
package com.sutaoyu.volatlt; import java.io.IOException; public class VolatileTest01 { public static void main(String[] args) throws IOException{ Runtime rt = Runtime.getRuntime(); rt.exec("mspaint"); } }